CN113561187A - 机器人控制方法、装置、电子设备及存储介质 - Google Patents
机器人控制方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113561187A CN113561187A CN202111122532.9A CN202111122532A CN113561187A CN 113561187 A CN113561187 A CN 113561187A CN 202111122532 A CN202111122532 A CN 202111122532A CN 113561187 A CN113561187 A CN 113561187A
- Authority
- CN
- China
- Prior art keywords
- robot
- matrix
- dynamics model
- training
- model
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012549 training Methods 0.000 claims abstract description 80
- 230000006870 function Effects 0.000 claims abstract description 50
- 239000011159 matrix material Substances 0.000 claims description 100
- 238000004891 communication Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013528 artificial neural network Methods 0.000 claims description 10
- 238000010606 normalization Methods 0.000 claims description 9
- 230000017105 transposition Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008094 contradictory effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research 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
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
本公开涉及一种机器人控制方法、装置、电子设备及存储介质,上述方法包括:获取机器人的运动轨迹集;确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。采用上述技术手段,解决现有技术中,现有的机器人动力学学习方法仅可以用于控制特定的机器人,无法广泛适用于不同结构的机器人的控制的问题。
Description
技术领域
本公开涉及机器学习领域,尤其涉及一种机器人控制方法、装置、电子设备及存储介质。
背景技术
机器人动力学学习是当前机器人控制学习的研究热点之一。目前机器人动力学学习常使用参数辨识、领域随机等方法,但是,参数辨识、领域随机等方法仅仅针对某种特定机器人的动力学学习,无法广泛适用于不同结构的机器人。
在实现本公开构思的过程中,发现相关技术中至少存在如下技术问题:现有的机器人动力学学习方法仅可以用于控制特定的机器人,无法广泛适用于不同结构的机器人的控制的问题。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种机器人控制方法、装置、电子设备及存储介质,以至少解决现有技术中,现有的机器人动力学学习方法仅可以用于控制特定的机器人,无法广泛适用于不同结构的机器人的控制的问题。
本公开的目的是通过以下技术方案实现的:
第一方面,本公开的实施例提供了一种机器人控制方法,包括:获取机器人的运动轨迹集;确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。
在一个示例性实施例中,所述根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练,包括:确定训练所述机器人动力学模型时的批处理条数,其中,所述批处理条数用于指示每次训练所述机器人动力学模型时,从所述运动轨迹集中选择的所述机器人的轨迹的条数;循环执行如下步骤对所述机器人动力学模型进行自监督训练:步骤一,从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹;步骤二,根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵;步骤三,分别将多个所述第一矩阵依次输入所述机器人动力学模型,得到多个第二矩阵;步骤四,通过所述误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值;步骤五,根据所述误差值对所述机器人动力学模型进行训练;步骤六,在当前批次训练中,在最后一个输入所述机器人动力学模型的所述第一矩阵和最后一个输入所述机器人动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。
在一个示例性实施例中,所述根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵,包括:确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,其中,所述状态包括:所述机器人的各个关节的位置和速度;以所述状态和所述关节力矩为所述第一矩阵的列,以所述多个时间维度为所述第一矩阵的行,构建所述第一矩阵;其中,在所述轨迹对应的所述机器人动力学模型的模型维度小于第二预设阈值时,对所述第一矩阵进行零填充处理。
在一个示例性实施例中,所述根据所述误差值对所述机器人动力学模型进行训练,包括:根据所述误差值,利用梯度下降算法更新所述机器人动力学模型的参数,其中,所述梯度下降算法,包括:梯度反向传播算法。
在一个示例性实施例中,所述误差函数LS:
NS为所述运动轨迹集中所述机器人的轨迹的总条数,j为轨迹的序号,t为时刻,nj为所述运动轨迹集中第j条轨迹中所述机器人的状态的总数,其中,每条轨迹包括多个所述机器人的状态,Sj,t+1为所述运动轨迹集中第j条轨迹中t+1时刻下的所述机器人的状态,为预测的第j条轨迹中t+1时刻下的所述机器人的状态,Pj,d为第j条轨迹对应的第一矩阵的维度,T为矩阵转置符号。
在一个示例性实施例中,所述机器人动力学模型,包括:编码层、多层注意力网络层和解码层;其中,所述编码层和所述解码层均包括前馈神经网络,所述注意力网络层包括:掩码多头注意力网络、多个前馈神经网络和归一化网络。
在一个示例性实施例中,所述根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制,包括:获取所述机器人的历史状态和所述历史状态对应的所述机器人的关节力矩,其中,所述历史状态包括以下至少之一:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前的一个或者多个状态,所述状态包括:所述机器人的各个关节的位置和速度;根据所述历史状态、所述关节力矩和经过所述自监督训练之后的机器人模型机器人动力学模型,对所述机器人进行控制。
第二方面,本公开的实施例提供了一种机器人控制装置,包括:获取模块,用于获取机器人的运动轨迹集;确定模块,用于确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;训练模块,用于根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;控制模块,用于根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。
第三方面,本公开的实施例提供了一种电子设备。上述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如上所述的机器人控制方法或图像处理的方法。
第四方面,本公开的实施例提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的机器人控制方法或图像处理的方法。
本公开实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:获取机器人的运动轨迹集;确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。因为,本公开实施例对于任意一个机器人动力学模型,根据所述运动轨迹集和所述机器人动力学模型对应的误差函数对所述机器人动力学模型进行自监督训练,根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制,因此,采用上述技术手段,可以解决现有技术中,现有的机器人动力学学习方法仅可以用于控制特定的机器人,无法广泛适用于不同结构的机器人的控制的问题,进而提供一种通过训练任意一种结构的机器人对应的机器人动力学模型,实现对任意一种结构的机器人的控制。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出了本公开实施例一种机器人控制方法的计算机终端的硬件结构框图;
图2示意性示出了本公开实施例的一种机器人控制方法的流程图;
图3示意性示出了本公开实施例的一种机器人动力学模型训练示意图;
图4示意性示出了本公开实施例的一种机器人控制装置的结构框图;
图5示意性示出了本公开实施例提供的一种电子设备的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本公开。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本公开实施例所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图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,根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。
需要说明的是,本公开实施例中的所述机器人可以是任意一种结构的机器人,同理,所述机器人对应的机器人动力学模型可以是任意一种机器人动力学模型。
机器人动力学是指通过机器人现在或者之前的各个时刻的状态和现在或者之前的各个时刻对应的力矩计算下一时刻的状态,进而控制机器人。机器人逆动力学是通过机器人现在或者之前的各个时刻的状态和下一时刻的状态计算各个时刻对应的力矩,进而控制机器人。
通过本公开,获取机器人的运动轨迹集;确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。因为,本公开实施例对于任意一个机器人动力学模型,根据所述运动轨迹集和所述机器人动力学模型对应的误差函数对所述机器人动力学模型进行自监督训练,根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制,因此,采用上述技术手段,可以解决现有技术中,现有的机器人动力学学习方法仅可以用于控制特定的机器人,无法广泛适用于不同结构的机器人的控制的问题,进而提供一种通过训练任意一种结构的机器人对应的机器人动力学模型,实现对任意一种结构的机器人的控制。
在一个示例性实施例中,所述根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练,包括:确定训练所述机器人动力学模型时的批处理条数,其中,所述批处理条数用于指示每次训练所述机器人动力学模型时,从所述运动轨迹集中选择的所述机器人的轨迹的条数;循环执行如下步骤对所述机器人动力学模型进行自监督训练:步骤一,从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹;步骤二,根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵;步骤三,分别将多个所述第一矩阵依次输入所述机器人动力学模型,得到多个第二矩阵;步骤四,通过所述误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值;步骤五,根据所述误差值对所述机器人动力学模型进行训练;步骤六,在当前批次训练中,在最后一个输入所述机器人动力学模型的所述第一矩阵和最后一个输入所述机器人动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。
批处理条数是每次批处理对应的从所述运动轨迹集中选择的所述机器人的轨迹的条数,批处理是模型训练中的专有名词,本公开不再解释。需要说明的是,确定训练所述机器人动力学模型时的批处理条数时,还可以确定机器人动力学模型的最大模型维度,确定网络各个模块中超参数,例如机器人动力学模型的网络层数、掩码多头注意力网络的头数、批处理大小、学习率、学习率衰减、学习种子等超参数。根据确定出的每条轨迹生成第一矩阵,是将每条轨迹转换为了矩阵数据,也就是第一矩阵。分别将多个所述第一矩阵依次输入所述机器人动力学模型,得到多个第二矩阵。其中,第二矩阵是所述机器人动力学模型根据所述第一矩阵,预测出的轨迹的数据。通过所述机器人动力学模型对应的误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值,也就是计算机器人动力学模型预测的值和真实值之间的差距,最后根据所述误差值对所述机器人动力学模型进行训练。通过循环执行步骤一到步骤五,逐渐减小所述误差值,提高所述机器人动力学模型预测的准确率,在当前批次训练的最后一个输入所述机器人动力学模型的所述第一矩阵和最后一个输入所述机器人动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。需要说明的是,每次循环从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹,是可以重复的。
在一个示例性实施例中,所述根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵,包括:确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,其中,所述状态包括:所述机器人的各个关节的位置和速度;以所述状态和所述关节力矩为所述第一矩阵的列,以所述多个时间维度为所述第一矩阵的行,构建所述第一矩阵;其中,在所述轨迹对应的所述机器人动力学模型的模型维度小于第二预设阈值时,对所述第一矩阵进行零填充处理。
确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,实际上,所述轨迹是包括所述机器人在多个时间维度下的状态和关节力矩的。所述机器人的各个关节的位置可以是各个关节的角度。以所述状态和所述关节力矩为所述第一矩阵的列,可以是以所述状态-所述关节力矩对的形式组成所述第一矩阵的列。比如构建完成的所述第一矩阵的第一行第一列元素可以是第1时刻下的所述机器人的状态。第二预设阈值由机器人动力学模型的最大模型维度确定。
根据所述第一矩阵,得到的所述第一矩阵对应的所述第二矩阵,所述第二矩阵是以多个时间维度为行,所述状态对应的预测状态为列。第二矩阵是所述机器人动力学模型根据所述第一矩阵,预测出的轨迹的数据,因为一个轨迹对应所述机器人在多个时间维度下的状态和关节力矩,所以所述第二矩阵是以多个时间维度为行,所述状态对应的预测状态为列,和前文并不矛盾。
多个时间维度的维度数量是由运动轨迹集中的机器人轨迹对应的运动时间序列的长度决定。
需要说明的是,在所述轨迹对应的所述机器人动力学模型的模型维度小于第二预设阈值时,对所述第一矩阵进行零填充处理,还可以替换为在所述轨迹对应的所述第一矩阵小于第二预设阈值时,对所述第一矩阵进行零填充处理。
在一个示例性实施例中,所述根据所述误差值对所述机器人动力学模型进行训练,包括:根据所述误差值,利用梯度下降算法更新所述机器人动力学模型的参数,其中,所述梯度下降算法,包括:梯度反向传播算法。
梯度反向传播算法可以是误差反向传播(Error Back Propagation)算法,简称BP算法,因为BP算法是现有技术,本公开实施例不再过多解释。
在一个示例性实施例中,所述误差函数LS:
NS为所述运动轨迹集中所述机器人的轨迹的总条数,j为轨迹的序号,t为时刻,nj为所述运动轨迹集中第j条轨迹中所述机器人的状态的总数,其中,每条轨迹包括多个所述机器人的状态,Sj,t+1为所述运动轨迹集中第j条轨迹中t+1时刻下的所述机器人的状态,为预测的第j条轨迹中t+1时刻下的所述机器人的状态,Pj,d为第j条轨迹对应的第一矩阵的维度,T为矩阵转置符号。
本公开实施例通过上述误差函数,可以计算任意一种结构的机器人对应的机器人动力学模型预测值的误差,进而根据该误差更新任意一种结构的机器人对应的机器人动力学模型的参数,从而实现对任意一种结构的机器人的控制。
在一个示例性实施例中,所述机器人动力学模型,包括:编码层、多层注意力网络层和解码层;其中,所述编码层和所述解码层均包括前馈神经网络,所述注意力网络层包括:掩码多头注意力网络、多个前馈神经网络和归一化网络。
归一化网络可以实现求和以及归一化的作用,本公开实施例涉及的网络都是现有网络,不再过多解释。
在一个示例性实施例中,所述根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制,包括:获取所述机器人的历史状态和所述历史状态对应的所述机器人的关节力矩,其中,所述历史状态包括以下至少之一:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前的一个或者多个状态,所述状态包括:所述机器人的各个关节的位置和速度;根据所述历史状态、所述关节力矩和经过所述自监督训练之后的机器人模型机器人动力学模型,对所述机器人进行控制。
可选地,所述机器人动力学模型可以用于实现以下的映射f:
其中,random(P)为任意一种机器人动力学模型,St为t时刻下的所述机器人的状态,为t时刻下的所述机器人的关节力矩,为t+1时刻下的所述机器人的状态,也即是机器人动力学模型预测或者映射的t+1时刻下的所述机器人的状态。在本公开实施例中,所述历史状态包括:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前多个状态,其中,t时刻可以看作当前时刻。
为了更好的理解上述技术方案,本公开实施例还提供了一种可选实施例,用于解释说明上述技术方案。
图3示意性示出了本公开实施例的一种机器人动力学模型训练示意图,如图3所示:
所述机器人动力学模型,包括:编码层、注意力网络层和解码层;
所述编码层和所述解码层均包括前馈神经网络,所述注意力网络层包括:掩码多头注意力网络、前馈神经网络和归一化网络;
具体训练过程:
获取机器人的第一运动轨迹集,其中,所述第一运动轨迹集是机器人行走产生的,历史的运动轨迹集,所述第一运动轨迹集包括多条所述机器人的轨迹,每条轨迹包括:所述机器人在多个时间维度下的状态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)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,组件服务端,或者网络设备等)执行本公开各个实施例的方法。
在本实施例中还提供了一种机器人控制装置,该机器人控制装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4示意性示出了本公开可选实施例的一种机器人控制装置的结构框图,如图4所示,该装置包括:
获取模块402,用于获取机器人的运动轨迹集;
确定模块404,用于确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;
训练模块406,用于根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;
控制模块408,用于根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。
通过本公开,获取机器人的运动轨迹集;确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。因为,本公开实施例对于任意一个机器人动力学模型,根据所述运动轨迹集和所述机器人动力学模型对应的误差函数对所述机器人动力学模型进行自监督训练,根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制,因此,采用上述技术手段,可以解决现有技术中,现有的机器人动力学学习方法仅可以用于控制特定的机器人,无法广泛适用于不同结构的机器人的控制的问题,进而提供一种通过训练任意一种结构的机器人对应的机器人动力学模型,实现对任意一种结构的机器人的控制。
可选地,训练模块406还用于确定训练所述机器人动力学模型时的批处理条数,其中,所述批处理条数用于指示每次训练所述机器人动力学模型时,从所述运动轨迹集中选择的所述机器人的轨迹的条数;循环执行如下步骤对所述机器人动力学模型进行自监督训练:步骤一,从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹;步骤二,根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵;步骤三,分别将多个所述第一矩阵依次输入所述机器人动力学模型,得到多个第二矩阵;步骤四,通过所述误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值;步骤五,根据所述误差值对所述机器人动力学模型进行训练;步骤六,在当前批次训练中,在最后一个输入所述机器人动力学模型的所述第一矩阵和最后一个输入所述机器人动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。
批处理条数是每次批处理对应的从所述运动轨迹集中选择的所述机器人的轨迹的条数,批处理是模型训练中的专有名词,本公开不再解释。需要说明的是,确定训练所述机器人动力学模型时的批处理条数时,还可以确定机器人动力学模型的最大模型维度,确定网络各个模块中超参数,例如机器人动力学模型的网络层数、掩码多头注意力网络的头数、批处理大小、学习率、学习率衰减、学习种子等超参数。根据确定出的每条轨迹生成第一矩阵,是将每条轨迹转换为了矩阵数据,也就是第一矩阵。分别将多个所述第一矩阵依次输入所述机器人动力学模型,得到多个第二矩阵。其中,第二矩阵是所述机器人动力学模型根据所述第一矩阵,预测出的轨迹的数据。通过所述机器人动力学模型对应的误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值,也就是计算机器人动力学模型预测的值和真实值之间的差距,最后根据所述误差值对所述机器人动力学模型进行训练。通过循环执行步骤一到步骤五,逐渐减小所述误差值,提高所述机器人动力学模型预测的准确率,在当前批次训练的最后一个输入所述机器人动力学模型的所述第一矩阵和最后一个输入所述机器人动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。需要说明的是,每次循环从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹,是可以重复的。
可选地,训练模块406还用于确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,其中,所述状态包括:所述机器人的各个关节的位置和速度;以所述状态和所述关节力矩为所述第一矩阵的列,以所述多个时间维度为所述第一矩阵的行,构建所述第一矩阵;其中,在所述轨迹对应的所述机器人动力学模型的模型维度小于第二预设阈值时,对所述第一矩阵进行零填充处理。
确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,实际上,所述轨迹是包括所述机器人在多个时间维度下的状态和关节力矩的。所述机器人的各个关节的位置可以是各个关节的角度。以所述状态和所述关节力矩为所述第一矩阵的列,可以是以所述状态-所述关节力矩对的形式组成所述第一矩阵的列。比如构建完成的所述第一矩阵的第一行第一列元素可以是第1时刻下的所述机器人的状态。第二预设阈值由机器人动力学模型的最大模型维度确定。
根据所述第一矩阵,得到的所述第一矩阵对应的所述第二矩阵,所述第二矩阵是以多个时间维度为行,所述状态对应的预测状态为列。第二矩阵是所述机器人动力学模型根据所述第一矩阵,预测出的轨迹的数据,因为一个轨迹对应所述机器人在多个时间维度下的状态和关节力矩,所以所述第二矩阵是以多个时间维度为行,所述状态对应的预测状态为列,和之前并不矛盾。
多个时间维度的维度数量是由运动轨迹集中的机器人轨迹对应的运动时间序列的长度决定。
可选地,训练模块406还用于根据所述误差值,利用梯度下降算法更新所述机器人动力学模型的参数,其中,所述梯度下降算法,包括:梯度反向传播算法。
梯度反向传播算法可以是误差反向传播(Error Back Propagation)算法,简称BP算法,因为BP算法是现有技术,本公开实施例不再过多解释。
在一个示例性实施例中,所述误差函数LS:
NS为所述运动轨迹集中所述机器人的轨迹的总条数,j为轨迹的序号,t为时刻,nj为所述运动轨迹集中第j条轨迹中所述机器人的状态的总数,其中,每条轨迹包括多个所述机器人的状态,Sj,t+1为所述运动轨迹集中第j条轨迹中t+1时刻下的所述机器人的状态,为预测的第j条轨迹中t+1时刻下的所述机器人的状态,Pj,d为第j条轨迹对应的第一矩阵的维度,T为矩阵转置符号。
本公开实施例通过上述误差函数,可以计算任意一种结构的机器人对应的机器人动力学模型预测值的误差,进而根据该误差更新任意一种结构的机器人对应的机器人动力学模型的参数,从而实现对任意一种结构的机器人的控制。
在一个示例性实施例中,所述机器人动力学模型,包括:编码层、多层注意力网络层和解码层;其中,所述编码层和所述解码层均包括前馈神经网络,所述注意力网络层包括:掩码多头注意力网络、多个前馈神经网络和归一化网络。
归一化网络可以实现求和以及归一化的作用,本公开实施例涉及的网络都是现有网络,不再过多解释。
可选地,控制模块408还用于获取所述机器人的历史状态和所述历史状态对应的所述机器人的关节力矩,其中,所述历史状态包括以下至少之一:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前的一个或者多个状态,所述状态包括:所述机器人的各个关节的位置和速度;根据所述历史状态、所述关节力矩和经过所述自监督训练之后的机器人模型机器人动力学模型,对所述机器人进行控制。
可选地,所述机器人动力学模型可以用于实现以下的映射f:
其中,random(P)为任意一种机器人动力学模型,St为t时刻下的所述机器人的状态,为t时刻下的所述机器人的关节力矩,为t+1时刻下的所述机器人的状态,也即是机器人动力学模型预测或者映射的t+1时刻下的所述机器人的状态。在本公开实施例中,所述历史状态包括:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前多个状态,其中,t时刻可以看作当前时刻。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本公开的实施例提供了一种电子设备。
图5示意性示出了本公开实施例提供的一种电子设备的结构框图。
参照图5所示,本公开实施例提供的电子设备500包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501、通信接口502和存储器503通过通信总线504完成相互间的通信;存储器503,用于存放计算机程序;处理器501,用于执行存储器上所存放的程序时,实现上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该输入输出设备与上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取机器人的运动轨迹集;
S2,确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;
S3,根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;
S4,根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。
本公开的实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取机器人的运动轨迹集;
S2,确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;
S3,根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;
S4,根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。
该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本公开的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
以上所述仅为本公开的优选实施例而已,并不用于限制于本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种机器人控制方法,其特征在于,包括:
获取机器人的运动轨迹集;
确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;
根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;
根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。
2.根据权利要求1所述的方法,其特征在于,所述根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练,包括:
确定训练所述机器人动力学模型时的批处理条数,其中,所述批处理条数用于指示每次训练所述机器人动力学模型时,从所述运动轨迹集中选择的所述机器人的轨迹的条数;
循环执行如下步骤对所述机器人动力学模型进行自监督训练:
步骤一,从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹;
步骤二,根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵;
步骤三,分别将多个所述第一矩阵依次输入所述机器人动力学模型,得到多个第二矩阵;
步骤四,通过所述误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值;
步骤五,根据所述误差值对所述机器人动力学模型进行训练;
步骤六,在当前批次训练中,在最后一个输入所述机器人动力学模型的所述第一矩阵和最后一个输入所述机器人动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。
3.根据权利要求2所述的方法,其特征在于,所述根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵,包括:
确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,其中,所述状态包括:所述机器人的各个关节的位置和速度;
以所述状态和所述关节力矩为所述第一矩阵的列,以所述多个时间维度为所述第一矩阵的行,构建所述第一矩阵;
其中,在所述轨迹对应的所述机器人动力学模型的模型维度小于第二预设阈值时,对所述第一矩阵进行零填充处理。
4.根据权利要求2所述的方法,其特征在于,所述根据所述误差值对所述机器人动力学模型进行训练,包括:
根据所述误差值,利用梯度下降算法更新所述机器人动力学模型的参数,其中,所述梯度下降算法,包括:梯度反向传播算法。
6.根据权利要求1或权利要求2所述的方法,其特征在于,所述机器人动力学模型,包括:编码层、多层注意力网络层和解码层;
其中,所述编码层和所述解码层均包括前馈神经网络,所述注意力网络层包括:掩码多头注意力网络、多个前馈神经网络和归一化网络。
7.根据权利要求1所述的方法,其特征在于,所述根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制,包括:
获取所述机器人的历史状态和所述历史状态对应的所述机器人的关节力矩,其中,所述历史状态包括以下至少之一:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前的一个或者多个状态,所述状态包括:所述机器人的各个关节的位置和速度;
根据所述历史状态、所述关节力矩和经过所述自监督训练之后的机器人模型机器人动力学模型,对所述机器人进行控制。
8.一种机器人控制装置,其特征在于,包括:
获取模块,用于获取机器人的运动轨迹集;
确定模块,用于确定所述机器人对应的机器人动力学模型,并确定所述机器人动力学模型对应的误差函数;
训练模块,用于根据所述运动轨迹集和所述误差函数对所述机器人动力学模型进行自监督训练;
控制模块,用于根据经过所述自监督训练之后的机器人动力学模型,对所述机器人进行控制。
9.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111122532.9A CN113561187B (zh) | 2021-09-24 | 2021-09-24 | 机器人控制方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111122532.9A CN113561187B (zh) | 2021-09-24 | 2021-09-24 | 机器人控制方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113561187A true CN113561187A (zh) | 2021-10-29 |
CN113561187B CN113561187B (zh) | 2022-01-11 |
Family
ID=78174278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111122532.9A Active CN113561187B (zh) | 2021-09-24 | 2021-09-24 | 机器人控制方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113561187B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1068437A (zh) * | 1991-07-10 | 1993-01-27 | 三星电子株式会社 | 移动监视装置 |
CN105598968A (zh) * | 2016-01-26 | 2016-05-25 | 中山大学 | 一种并联机械臂的运动规划与控制方法 |
CN107590340A (zh) * | 2017-09-15 | 2018-01-16 | 浙江大学 | 一种机械臂外力估计方法及装置 |
CN110083160A (zh) * | 2019-05-16 | 2019-08-02 | 哈尔滨工业大学(深圳) | 一种基于深度学习的机器人轨迹规划方法 |
WO2019241680A1 (en) * | 2018-06-15 | 2019-12-19 | Google Llc | Deep reinforcement learning for robotic manipulation |
CN110909859A (zh) * | 2019-11-29 | 2020-03-24 | 中国科学院自动化研究所 | 基于对抗结构化控制的仿生机器鱼运动控制方法、系统 |
US20200130177A1 (en) * | 2018-10-29 | 2020-04-30 | Hrl Laboratories, Llc | Systems and methods for few-shot transfer learning |
CN112077839A (zh) * | 2020-08-06 | 2020-12-15 | 中科云谷科技有限公司 | 一种机械臂的运动控制方法及装置 |
CN112318509A (zh) * | 2020-10-30 | 2021-02-05 | 东南大学 | 一种空间机器人高斯过程轨迹跟踪控制方法 |
US20210081791A1 (en) * | 2019-09-13 | 2021-03-18 | Osaro | Computer-Automated Robot Grasp Depth Estimation |
-
2021
- 2021-09-24 CN CN202111122532.9A patent/CN113561187B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1068437A (zh) * | 1991-07-10 | 1993-01-27 | 三星电子株式会社 | 移动监视装置 |
CN105598968A (zh) * | 2016-01-26 | 2016-05-25 | 中山大学 | 一种并联机械臂的运动规划与控制方法 |
CN107590340A (zh) * | 2017-09-15 | 2018-01-16 | 浙江大学 | 一种机械臂外力估计方法及装置 |
WO2019241680A1 (en) * | 2018-06-15 | 2019-12-19 | Google Llc | Deep reinforcement learning for robotic manipulation |
US20200130177A1 (en) * | 2018-10-29 | 2020-04-30 | Hrl Laboratories, Llc | Systems and methods for few-shot transfer learning |
CN110083160A (zh) * | 2019-05-16 | 2019-08-02 | 哈尔滨工业大学(深圳) | 一种基于深度学习的机器人轨迹规划方法 |
US20210081791A1 (en) * | 2019-09-13 | 2021-03-18 | Osaro | Computer-Automated Robot Grasp Depth Estimation |
CN110909859A (zh) * | 2019-11-29 | 2020-03-24 | 中国科学院自动化研究所 | 基于对抗结构化控制的仿生机器鱼运动控制方法、系统 |
CN112077839A (zh) * | 2020-08-06 | 2020-12-15 | 中科云谷科技有限公司 | 一种机械臂的运动控制方法及装置 |
CN112318509A (zh) * | 2020-10-30 | 2021-02-05 | 东南大学 | 一种空间机器人高斯过程轨迹跟踪控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113561187B (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107454965B (zh) | 神经网络处理器中的批处理 | |
CN107818367B (zh) | 用于神经网络的处理系统和处理方法 | |
CN112232513B (zh) | 一种量子态的制备方法及装置 | |
CN111890365A (zh) | 目标跟踪方法、装置、计算机设备及存储介质 | |
CN110163368A (zh) | 基于混合精度的深度学习模型训练方法、装置及系统 | |
US20200349473A1 (en) | Method for generating universal learned model | |
CN109993308B (zh) | 基于云平台共享学习系统及方法、共享平台及方法、介质 | |
CN107783840A (zh) | 一种分布式多层深度学习资源分配方法和装置 | |
JP7044873B2 (ja) | ディープニューラルネットワークを作成するための方法、装置及びコンピュータプログラム | |
CN113850389B (zh) | 一种量子线路的构建方法及装置 | |
CN108304926B (zh) | 一种适用于神经网络的池化计算装置及方法 | |
CN111898750A (zh) | 基于进化算法的神经网络模型压缩方法及装置 | |
CN107457780B (zh) | 控制机械臂运动的方法及装置、存储介质和终端设备 | |
CN112818588B (zh) | 一种电力系统的最优潮流计算方法、装置及存储介质 | |
CN116720551B (zh) | 脉冲神经网络的卷积加速方法及卷积加速器 | |
CN107944076A (zh) | 一种设备部署方案获取方法及装置 | |
CN116187548A (zh) | 一种光伏发电功率预测方法、装置、存储介质及电子装置 | |
CN113635310B (zh) | 模型迁移方法、装置 | |
Yassin et al. | Effect of swarm size parameter on Binary Particle Swarm optimization-based NARX structure selection | |
CN113561187B (zh) | 机器人控制方法、装置、电子设备及存储介质 | |
CN114967465A (zh) | 轨迹规划方法、装置、电子设备及存储介质 | |
CN113561185B (zh) | 一种机器人控制方法、装置及存储介质 | |
CN113272831B (zh) | 神经网络的缩简装置 | |
CN107665362A (zh) | 用于实现机器人聊天的训练方法、预测答案的方法及装置 | |
WO2020261509A1 (ja) | 機械学習装置、機械学習プログラム、及び機械学習方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |