CN116619007B - 一种基于前馈虚拟控制力的插孔方法及其相关设备 - Google Patents
一种基于前馈虚拟控制力的插孔方法及其相关设备 Download PDFInfo
- Publication number
- CN116619007B CN116619007B CN202310910385.4A CN202310910385A CN116619007B CN 116619007 B CN116619007 B CN 116619007B CN 202310910385 A CN202310910385 A CN 202310910385A CN 116619007 B CN116619007 B CN 116619007B
- Authority
- CN
- China
- Prior art keywords
- coordinate system
- function model
- hole
- model
- mechanical arm
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000009471 action Effects 0.000 claims abstract description 157
- 230000006870 function Effects 0.000 claims description 416
- 238000012549 training Methods 0.000 claims description 97
- 238000005457 optimization Methods 0.000 claims description 18
- 238000010276 construction Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 9
- 238000011478 gradient descent method Methods 0.000 claims description 6
- 238000003825 pressing Methods 0.000 claims description 5
- 239000004973 liquid crystal related substance Substances 0.000 description 24
- 230000000875 corresponding effect Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 239000011148 porous material Substances 0.000 description 6
- 230000001276 controlling effect Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B23—MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
- B23P—METAL-WORKING NOT OTHERWISE PROVIDED FOR; COMBINED OPERATIONS; UNIVERSAL MACHINE TOOLS
- B23P19/00—Machines for simply fitting together or separating metal parts or objects, or metal and non-metal parts, whether or not involving some deformation; Tools or devices therefor so far as not provided for in other classes
- B23P19/04—Machines for simply fitting together or separating metal parts or objects, or metal and non-metal parts, whether or not involving some deformation; Tools or devices therefor so far as not provided for in other classes for assembling or disassembling parts
-
- 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/1602—Programme controls characterised by the control system, structure, architecture
-
- 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/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- 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/1679—Programme controls characterised by the tasks executed
- B25J9/1687—Assembly, peg and hole, palletising, straight line, weaving pattern movement
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Numerical Control (AREA)
Abstract
本申请属于机械臂控制技术领域,公开了一种基于前馈虚拟控制力的插孔方法及其相关设备,在观测空间中加入对上一步动作的观测,明确了机械臂当前的运动状态;同时,采用两个轴向的前馈虚拟控制力作为策略函数模型的输出量,用作机械臂的控制信号,前馈虚拟控制力是一种模仿人拖动操作的控制信号,可使机械臂末端的力传感器在没有实际受力的情况下,接收到虚拟的受力信号,从而使机械臂末端沿着受力信号的方向做柔性运动,采用前馈虚拟控制力作为控制信号的好处是无需考虑机械臂运动的速度和加速度,同时与位姿控制信号相比,将策略函数模型的输出从6个值减少到2个值,降低了训练难度,提高了学习效率。
Description
技术领域
本申请涉及机械臂控制技术领域,具体而言,涉及一种基于前馈虚拟控制力的插孔方法及其相关设备。
背景技术
目前,具有力矩控制功能的机械臂常被用于执行轴孔装配任务,由机械臂末端夹持轴工件并通过主动柔顺控制方法将自身转换为非刚性系统来进行轴孔装配,具有较高的安全性。当前常用的方法是结合深度强化学习算法和末端主动柔顺控制算法来实现轴孔装配过程,但该方法采用位置控制对机械臂进行控制,导致其策略函数输入量(即观测空间)与策略函数输出量(即动作空间)的参数均较多,进而导致该方法在学习装配策略时需要尝试的次数过多,学习效率较低。
发明内容
本申请的目的在于提供一种基于前馈虚拟控制力的插孔方法及其相关设备,能够提高策略函数模型的训练效率。
第一方面,本申请提供了一种基于前馈虚拟控制力的插孔方法,包括步骤:
A1.基于SAC算法构建价值函数模型和策略函数模型;所述策略函数模型的输出量为动作参数,所述动作参数仅包括在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,所述策略函数模型的输入量为机械臂的状态信息,所述状态信息包括所述策略函数模型的上一个所述输出量,所述工具坐标系OXYZ下的X轴方向和Y轴方向为垂直于轴部件的轴线的平面上的两个轴向;
A2.基于被所述机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2;所述工具坐标系OXYZ的Z轴正方向与所述目标坐标系O2X2Y2Z2的Z2轴正方向相反;
A3.根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于所述孔部件上表面;
A4.基于所述策略函数模型和预设的奖励函数,获取经验数据集,以配合所述价值函数模型训练优化所述策略函数模型的模型参数;
A5.利用优化所述模型参数后的所述策略函数模型进行动作参数的输出,用以控制所述机械臂执行轴孔装配任务。
该插孔方法,在观测空间中加入对上一步动作的观测,明确了机械臂当前的运动状态;同时,采用两个轴向的前馈虚拟控制力作为策略函数模型的输出量,用作机械臂的控制信号(即动作空间中仅有两个代表前馈虚拟控制力的参数),前馈虚拟控制力是一种模仿人拖动操作的控制信号,可使机械臂末端的力传感器在没有实际受力的情况下,接收到虚拟的受力信号,从而使机械臂末端沿着受力信号的方向做柔性运动,采用前馈虚拟控制力作为控制信号的好处是无需考虑机械臂运动的速度和加速度,同时与位姿控制信号相比,将策略函数模型的输出从6个值减少到2个值,降低了训练难度,提高了学习效率。
优选地,步骤A2包括:
A201.基于右手螺旋定则,以所述轴部件的下端平面的中心点为原点O,沿所述轴部件的轴线朝下为Z轴正方向,建立所述工具坐标系OXYZ;
A202.基于右手螺旋定则,以所述孔部件上表面的孔圆心为原点O1,沿所述孔部件的孔轴线朝上为Z1轴正方向,建立孔部件坐标系O1X1Y1Z1;
A203.调整所述机械臂末端位姿使所述工具坐标系OXYZ的XY平面与所述孔部件坐标系O1X1Y1Z1的X1Y1平面平行,且Z轴正方向与Z1轴正方向相反,并根据所述孔部件的孔径调整所述工具坐标系OXYZ原点与所述孔部件坐标系O1X1Y1Z1原点的相对位置;
A204.根据所述孔部件的孔径,使所述孔部件坐标系O1X1Y1Z1在X1Y1平面内随机平移,得到所述目标坐标系O2X2Y2Z2。
在实际轴孔装配任务中,系统无法获取孔部件的精确位置信息,获取到的孔部件位置信息是一个模糊的范围,因此在训练优化中通过随机误差建立目标坐标系来模拟实际装配任务中的位置信息误差,同时还可以提高训练所得模型的泛化能力。
优选地,所述根据所述孔部件的孔径调整所述工具坐标系OXYZ原点与所述孔部件坐标系O1X1Y1Z1原点的相对位置的步骤包括:
获取所述孔部件的所述孔径;
根据所述孔径确定第一参考数值范围;
在所述第一参考数值范围内随机生成第一随机量;
调整所述工具坐标系OXYZ的原点位置,使所述工具坐标系OXYZ的原点与所述坐标系O1X1Y1Z1的Z1轴的距离等于所述第一随机量。
通过随机调整工具坐标系OXYZ原点与所述孔部件坐标系O1X1Y1Z1原点的相对位置,使轴部件与孔部件的初始接触位置随机变化,有利于进一步提高训练所得模型的泛化能力。
优选地,步骤A204包括:
获取所述孔部件的所述孔径;
根据所述孔径确定第二参考数值范围;
在所述第二参考数值范围内随机生成第二随机量和第三随机量;
使所述孔部件坐标系O1X1Y1Z1沿X1轴移动所述第二随机量,并使所述孔部件坐标系O1X1Y1Z1沿Y1轴移动所述第三随机量,得到所述目标坐标系O2X2Y2Z2。
通过该方式使目标坐标系O2X2Y2Z2与孔部件坐标系O1X1Y1Z1之间产生范围受控的随机位置误差,从而可保证训练所得模型的泛化能力。
优选地,步骤A4包括:
A401.开启一个新的训练回合,并初始化本训练回合的训练步数为1;
A402.获取所述机械臂的状态信息,记为第一状态信息,把所述第一状态信息输入所述策略函数模型,得到所述策略函数模型输出的动作参数,记为第一动作参数;
A403.把所述第一动作参数施加到所述机械臂末端,获取所述机械臂末端执行动作后的状态信息,记为第二状态信息,并把所述第一状态信息和所述第二状态信息输入所述奖励函数,得到对应的奖励值;
A404.根据所述第二状态信息判断所述机械臂末端是否到达目标深度,若达到,则把完成参数赋值为真,若未达到,则在训练步数超过预设的最大步数时把完成参数赋值为真,在训练步数不超过预设的最大步数时把完成参数赋值为假;
A405.把所述第一状态信息、所述第一动作参数、所述第二状态信息、所述奖励值和所述完成参数作为一个经验样本,添加到所述经验数据集;
A406.若所述经验数据集的经验样本数量大于预设目标数,则从所述经验数据集中随机选取预设目标数的所述经验样本,用以对所述价值函数模型和所述策略函数模型的模型参数进行优化,并执行步骤A407;若所述经验数据集的经验样本数量不大于预设目标数,则直接执行步骤A407;
A407.若所述完成参数为真,则执行步骤A408;若所述完成参数为假,则令训练步数加1,并返回步骤A402;
A408.结束本训练回合,并统计本训练回合的总奖励值,执行步骤A409;
A409.若所述总奖励值收敛,则结束训练优化过程,否则,清零前馈虚拟控制力和撤除所述第一预设虚拟控制力并返回步骤A2。
优选地,所述状态信息还包括所述机械臂末端在所述目标坐标系O2X2Y2Z2下的坐标以及在工具坐标系OXYZ下的力和扭矩;
步骤A404中,基于所述第二状态信息,根据所述机械臂末端在所述目标坐标系O2X2Y2Z2下的坐标判断所述机械臂末端是否到达目标深度。
优选地,所述价值函数模型包括插孔价值函数模型、动作价值函数模型和目标价值函数模型;
步骤A406中对所述价值函数模型和所述策略函数模型的模型参数进行优化,具体包括:
B1.根据选取的所述经验样本、所述动作价值函数模型和所述目标价值函数模型,获取所述动作价值函数模型的损失函数,记为第一损失函数;
B2.根据选取的所述经验样本、所述插孔价值函数模型、所述策略函数模型和所述动作价值函数模型,获取所述插孔价值函数模型的损失函数和所述策略函数模型的损失函数,分别记为第二损失函数和第三损失函数;
B3.基于梯度下降法,根据所述第一损失函数、所述第二损失函数和所述第三损失函数更新所述动作价值函数模型、所述插孔价值函数模型和所述策略函数模型的模型参数;
B4.根据所述插孔价值函数模型更新后的模型参数,更新所述目标价值函数模型的模型参数。
第二方面,本申请提供了一种基于前馈虚拟控制力的插孔装置,包括:
模型构建模块,用于基于SAC算法构建价值函数模型和策略函数模型;所述策略函数模型的输出量为动作参数,所述动作参数仅包括在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,所述策略函数模型的输入量为机械臂的状态信息,所述状态信息包括所述策略函数模型的上一个所述输出量,所述工具坐标系OXYZ下的X轴方向和Y轴方向为垂直于轴部件的轴线的平面上的两个轴向;
坐标系构建模块,用于基于被所述机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2;所述工具坐标系OXYZ的Z轴正方向与所述目标坐标系O2X2Y2Z2的Z2轴正方向相反;
预压模块,用于根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于所述孔部件上表面;
模型优化模块,用于基于所述策略函数模型和预设的奖励函数,获取经验数据集,以配合所述价值函数模型训练优化所述策略函数模型的模型参数;
控制模块,用于利用优化所述模型参数后的所述策略函数模型进行动作参数的输出,用以控制所述机械臂执行轴孔装配任务。
该插孔装置,在观测空间中加入对上一步动作的观测,明确了机械臂当前的运动状态;同时,采用两个轴向的前馈虚拟控制力作为策略函数模型的输出量,用作机械臂的控制信号(即动作空间中仅有两个代表前馈虚拟控制力的参数),前馈虚拟控制力是一种模仿人拖动操作的控制信号,可使机械臂末端的力传感器在没有实际受力的情况下,接收到虚拟的受力信号,从而使机械臂末端沿着受力信号的方向做柔性运动,采用前馈虚拟控制力作为控制信号的好处是无需考虑机械臂运动的速度和加速度,同时与位姿控制信号相比,将策略函数模型的输出从6个值减少到2个值,降低了训练难度,提高了学习效率。
第三方面,本申请提供了一种电子设备,包括处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时,运行如前文所述的基于前馈虚拟控制力的插孔方法中的步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如前文所述的基于前馈虚拟控制力的插孔方法中的步骤。
有益效果:本申请提供的基于前馈虚拟控制力的插孔方法及其相关设备,在观测空间中加入对上一步动作的观测,明确了机械臂当前的运动状态;同时,采用两个轴向的前馈虚拟控制力作为策略函数模型的输出量,用作机械臂的控制信号,前馈虚拟控制力是一种模仿人拖动操作的控制信号,可使机械臂末端的力传感器在没有实际受力的情况下,接收到虚拟的受力信号,从而使机械臂末端沿着受力信号的方向做柔性运动,采用前馈虚拟控制力作为控制信号的好处是无需考虑机械臂运动的速度和加速度,同时与位姿控制信号相比,将策略函数模型的输出从6个值减少到2个值,降低了训练难度,提高了学习效率。
附图说明
图1为本申请实施例提供的基于前馈虚拟控制力的插孔方法的流程图。
图2为本申请实施例提供的基于前馈虚拟控制力的插孔装置的结构示意图。
图3为本申请实施例提供的电子设备的结构示意图。
标号说明:1、模型构建模块;2、坐标系构建模块;3、预压模块;4、模型优化模块;5、控制模块;301、处理器;302、存储器;303、通信总线。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1是本申请一些实施例中的一种基于前馈虚拟控制力的插孔方法,包括步骤:
A1.基于SAC算法构建价值函数模型和策略函数模型;策略函数模型的输出量为动作参数,动作参数仅包括在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,策略函数模型的输入量为机械臂的状态信息,状态信息包括策略函数模型的上一个输出量,工具坐标系OXYZ下的X轴方向和Y轴方向为垂直于轴部件的轴线的平面上的两个轴向;
A2.基于被机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2;工具坐标系OXYZ的Z轴正方向与目标坐标系O2X2Y2Z2的Z2轴正方向相反;
A3.根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于孔部件上表面;
A4.基于策略函数模型和预设的奖励函数,获取经验数据集,以配合价值函数模型训练优化策略函数模型的模型参数;
A5.利用优化模型参数后的策略函数模型进行动作参数的输出,用以控制机械臂执行轴孔装配任务。
该插孔方法,在观测空间中加入对上一步动作的观测(即策略函数模型的输入量中包含策略函数模型的上一个输出量,在初始时刻,该上一个输出量默认为零),明确了机械臂当前的运动状态;同时,采用两个轴向的前馈虚拟控制力作为策略函数模型的输出量,用作机械臂的控制信号(即动作空间中仅有两个代表前馈虚拟控制力的参数),前馈虚拟控制力是一种模仿人拖动操作的控制信号,可使机械臂末端的力传感器在没有实际受力的情况下,接收到虚拟的受力信号,从而使机械臂末端沿着受力信号的方向做柔性运动,采用前馈虚拟控制力作为控制信号的好处是无需考虑机械臂运动的速度和加速度,同时与位姿控制信号相比,将策略函数模型的输出从6个值减少到2个值,降低了训练难度,提高了学习效率。其中,由于先用Z轴正方向的第一预设虚拟控制力使机械臂带动轴部件下端垂直朝向下压于孔部件上表面,只需要使轴部件沿孔部件上表面移动,当轴部件移动至对准孔位置时会在该第一预设虚拟控制力的作用下压入孔中,因此,只需要策略函数模型输出X轴方向和Y轴方向的前馈虚拟控制力两个即可驱使轴部件沿孔部件上表面移动,大大减少了策略函数模型输出的动作参数包含的参数数量(从现有技术的6个减少到2个),进而降低训练难度,提高学习效率,且在实际应用中能够提高运算速度,有利于提高装配效率。
其中,基于SAC算法构建价值函数模型和策略函数模型的具体构建方法为现有技术,此处不对其进行详述。其中,价值函数模型包括插孔价值函数模型、动作价值函数模型和目标价值函数模型。插孔价值函数模型、动作价值函数模型、目标价值函数模型和策略函数模型均为神经网络模型。通过设置该三个价值函数模型,在后续利用该三个价值函数模型配合对策略函数模型进行训练,一方面可提高学习速度,提高策略函数模型的训练效率,另一方面,可提升策略函数模型的探索能力,并增强策略函数模型生成策略的鲁棒性。
其中,插孔价值函数模型表示为,其输入量为/>(/>为机械臂在t时刻的状态信息),其模型参数为/>,其对应于/>的输出量为/>(该/>为/>状态下对策略函数模型的评价值,该评价值越大,策略函数模型的性能越好)。
其中,动作价值函数模型表示为,其输入量为/>和/>(/>的定义详见后文关于策略函数模型的说明),其模型参数为/>,其对应于/>和/>的输出量为/>(该/>为/>状态下执行动作/>后,对动作/>的合理性评价值,该合理性评价值越大,动作/>的合理性越好)。
其中,目标价值函数模型表示为,其输入量为/>(/>,为机械臂在t+1时刻的状态信息,当t时刻为当前时刻的时候,/>为下一时刻的状态信息),其模型参数为/>,其对应于/>的输出量为/>(该/>为/>状态下对策略函数模型的评价值,该评价值越大,策略函数模型的性能越好)。其中,目标价值函数模型与插孔价值函数模型的模型结构相同(即神经网络模型结构相同,从而/>与/>中的参数具有一一对应关系),且在初始状态下(即进行优化训练之前)两者的模型参数相同(即此时的/>与相同)。
其中,策略函数模型表示为,其输入量为/>,其模型参数为/>,其对应于/>的输出量为/>(/>为t时刻的动作参数),其中,/>,/>为X轴方向的前馈虚拟控制力,/>为Y轴方向的前馈虚拟控制力。当t时刻为当前时刻的时候,策略函数模型的上一个输出量记为/>,即上一时刻的动作参数。
具体地,步骤A2包括:
A201.基于右手螺旋定则,以轴部件的下端平面的中心点为原点O,沿轴部件的轴线朝下为Z轴正方向,建立工具坐标系OXYZ;
A202.基于右手螺旋定则,以孔部件上表面的孔圆心为原点O1,沿孔部件的孔轴线朝上为Z1轴正方向,建立孔部件坐标系O1X1Y1Z1;
A203.调整机械臂末端位姿使工具坐标系OXYZ的XY平面与孔部件坐标系O1X1Y1Z1的X1Y1平面平行,且Z轴正方向与Z1轴正方向相反,并根据孔部件的孔径调整工具坐标系OXYZ原点与孔部件坐标系O1X1Y1Z1原点的相对位置;
A204.根据孔部件的孔径,使孔部件坐标系O1X1Y1Z1在X1Y1平面内随机平移,得到目标坐标系O2X2Y2Z2。
在实际轴孔装配任务中,系统无法获取孔部件的精确位置信息,获取到的孔部件位置信息是一个模糊的范围,因此在训练优化中通过随机误差建立目标坐标系来模拟实际装配任务中的位置信息误差,同时还可以提高训练所得模型的泛化能力。
其中,若轴部件与孔部件的孔之间没有周向角度的配合要求(例如轴部件为圆柱轴,孔部件的孔为对应的圆孔,圆柱轴可以绕轴线旋转任意角度并插入圆孔),则步骤A201中,X轴正方向可以是轴部件的下端平面中的任意方向,Y轴正方向根据右手螺旋定则确定,步骤A202中,X1轴正方向可以是孔部件的上表面中的任意方向,Y1轴正方向根据右手螺旋定则确定。若轴部件与孔部件的孔之间有周向角度的配合要求(例如轴部件为棱柱轴,孔部件的孔为对应的棱柱孔,棱柱轴的棱角需要与棱柱孔的棱角一一对应),则步骤A201中,X轴正方向从原点O指向轴部件的下端平面的一个特征点(例如一个角点),Y轴正方向根据右手螺旋定则确定,步骤A202中,X1轴正方向从原点O1指向孔部件的孔的相应的特征点(例如孔的相应的一个角点),Y1轴正方向根据右手螺旋定则确定。
优选地,步骤A203中,调整机械臂末端位姿使工具坐标系OXYZ的XY平面与孔部件坐标系O1X1Y1Z1的X1Y1平面平行,且Z轴正方向与Z1轴正方向相反的同时,还使X轴正方向与X1轴正方向相同;从而,当轴部件与孔部件的孔之间有周向角度的配合要求的时候,后续只需要控制机械臂在平面内平移至原点O对准原点O1,轴部件即可插入孔中,无需进行姿态角度的调整,从而策略函数模型的输出量无需包含与角度调节相关的参数,保证训练效率。
优选地,步骤A203中,根据孔部件的孔径调整工具坐标系OXYZ原点与孔部件坐标系O1X1Y1Z1原点的相对位置的步骤包括:
获取孔部件的孔径;
根据孔径确定第一参考数值范围;
在第一参考数值范围内随机生成第一随机量;
调整工具坐标系OXYZ的原点位置,使工具坐标系OXYZ的原点与坐标系O1X1Y1Z1的Z1轴的距离等于第一随机量。
通过随机调整工具坐标系OXYZ原点与孔部件坐标系O1X1Y1Z1原点的相对位置,使轴部件与孔部件的初始接触位置随机变化,有利于进一步提高训练所得模型的泛化能力。
其中,对于孔为圆孔的孔部件,孔径可以是直径或半径,对于孔为非圆孔的孔部件,孔径可以是孔的最大宽度或该最大宽度的一半。
以下以孔为圆孔且孔径为半径的情况为例进行说明。
第一参考数值范围可根据实际需要设置,例如为[R,2R],R为孔径(半径),在该范围内,可以保证轴部件与孔部件的初始接触位置与孔之间的距离不会过大,可减小后续训练优化过程中,每个训练回合内轴部件移动至能够插入孔的位置所需的训练步数,从而有利于提高训练效率。但第一参考数值范围不限于此。
在调整工具坐标系OXYZ的原点位置,使工具坐标系OXYZ的原点与坐标系O1X1Y1Z1的Z1轴的距离等于第一随机量的时候,原点O1到原点O的方向可随机选定。即实际上,可以把原点O调整至以Z1轴为中轴线且半径为第一随机量的圆柱面上的任意位置。
优选地,步骤A204包括:
获取孔部件的孔径;
根据孔径确定第二参考数值范围;
在第二参考数值范围内随机生成第二随机量和第三随机量;
使孔部件坐标系O1X1Y1Z1沿X1轴移动第二随机量,并使孔部件坐标系O1X1Y1Z1沿Y1轴移动第三随机量,得到目标坐标系O2X2Y2Z2。
通过该方式使目标坐标系O2X2Y2Z2与孔部件坐标系O1X1Y1Z1之间产生范围受控的随机位置误差,从而可保证训练所得模型的泛化能力。
同样以下以孔为圆孔且孔径为半径的情况为例进行说明。
第二参考数值范围可根据实际需要设置,例如为[-0.5R,0.5R],一般的系统获取孔部件的位置信息的误差在该范围内,从而保证训练所得模型具有足够的泛化能力。但第二参考数值范围不限于此。
其中,步骤A3中,给定机械臂末端一个沿Z轴正方向的第一预设虚拟控制力(可根据实际需要设置),使机械臂带动轴部件下端压于孔部件上表面,从而预先对轴部件施加一个向下的压力,并在后续训练过程中保持该压力,当轴部件移动至原点O对准原点O1的时候,轴部件会自动在该压力下插入孔中,从而策略函数模型的输出量无需包含用于使机械臂沿Z轴移动的前馈虚拟控制力,保证训练效率。
具体地,步骤A4包括:
A401.开启一个新的训练回合,并初始化本训练回合的训练步数为1;
A402.获取机械臂的状态信息,记为第一状态信息,把第一状态信息输入策略函数模型,得到策略函数模型输出的动作参数,记为第一动作参数;
A403.把第一动作参数施加到机械臂末端,获取机械臂末端执行动作后的状态信息,记为第二状态信息,并把第一状态信息和第二状态信息输入奖励函数,得到对应的奖励值;
A404.根据第二状态信息判断机械臂末端是否到达目标深度,若达到,则把完成参数赋值为真,若未达到,则在训练步数超过预设的最大步数(可根据实际需要设置)时把完成参数赋值为真,在训练步数不超过预设的最大步数时把完成参数赋值为假;
A405.把第一状态信息、第一动作参数、第二状态信息、奖励值和完成参数作为一个经验样本,添加到经验数据集;
A406.若经验数据集的经验样本数量大于预设目标数(可根据实际需要设置),则从经验数据集中随机选取预设目标数的经验样本,用以对价值函数模型和策略函数模型的模型参数进行优化,并执行步骤A407;若经验数据集的经验样本数量不大于预设目标数,则直接执行步骤A407;
A407.若完成参数为真,则执行步骤A408;若完成参数为假,则令训练步数加1,并返回步骤A402;
A408.结束本训练回合,并统计本训练回合的总奖励值,执行步骤A409;
A409.若总奖励值收敛,则结束训练优化过程,否则,清零前馈虚拟控制力(即清零)和撤除第一预设虚拟控制力并返回步骤A2。
例如,步骤A401中,用k表示训练步数,从而初始化后k=1。
本实施例中,状态信息还包括机械臂末端在目标坐标系O2X2Y2Z2下的坐标以及在工具坐标系OXYZ下的力和扭矩。以下,以t时刻为当前时刻进行说明,t时刻的状态信息(即第一状态信息)可表示为:
;
其中,、/>、/>为机械臂末端t时刻的在目标坐标系O2X2Y2Z2下的三个坐标值,、/>、/>为机械臂末端t时刻在工具坐标系OXYZ下的三个坐标轴向的力,/>、/>、为机械臂末端t时刻在工具坐标系OXYZ下的三个坐标轴向的力矩,/>、/>为策略函数模型的上一个输出量中的两个前馈虚拟控制力(分别为在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,在初始时刻,/>、/>均为0)。由于此处的t时刻代表当前时刻,机械臂末端执行动作后的时刻为t+1时刻,即为当前时刻的下一时刻,此时,可用表示执行动作后的状态信息(即第二状态信息)。
其中,奖励函数具体可根据实际需要设置,例如:
;
其中,为奖励值,/>、/>、/>、/>均为预设常数参数(可根据实现需要设置),/>为t时刻的(即机械臂末端执行动作前)工具坐标系原点O与目标坐标系原点O2之间的距离(根据第一状态信息中的坐标值计算得到),/>为机械臂末端执行动作后工具坐标系原点O与目标坐标系原点O2之间的距离(根据第二状态信息中的坐标值计算得到),/>为t时刻的机械臂末端的深度,/>为机械臂末端执行动作后机械臂末端的深度。
其中,条件A为:执行动作后的机械臂末端未达到目标深度,且训练步数不超过预设的最大步数。条件B为:执行动作后的机械臂末端达到目标深度。条件C为:执行动作后的机械臂末端未达到目标深度,且训练步数超过预设的最大步数。使用该奖励函数能够鼓励策略函数模型生成动作使机械臂末端向目标坐标系原点O2移动,并鼓励策略函数模型生成动作使机械臂末端在目标坐标系原点O2附近寻孔并插入,提高训练效率。但奖励函数不限于此。
其中,可根据执行动作后的状态信息判断机械臂末端是否到达目标深度。具体包括:基于第二状态信息,根据机械臂末端在目标坐标系O2X2Y2Z2下的坐标判断机械臂末端是否到达目标深度。其中,机械臂末端的深度,实际上是指机械臂末端在Z2轴负方向移动的距离,可计算机械臂末端初始的Z2坐标值(指轴部件下端与孔部件上表面开始接触时机械臂末端初始的Z2坐标值)与执行动作后的机械臂末端的Z2坐标值之差作为机械臂末端的深度,该深度实际上反映了轴部件插入孔的插入深度。
其中,当前时刻得到的经验样本可表示为,/>为完成参数。
对于价值函数模型包括插孔价值函数模型、动作价值函数模型和目标价值函数模型的情况;步骤A406包括:
B1.根据选取的经验样本、动作价值函数模型和目标价值函数模型,获取动作价值函数模型的损失函数,记为第一损失函数;
B2.根据选取的经验样本、插孔价值函数模型、策略函数模型和动作价值函数模型,获取插孔价值函数模型的损失函数和策略函数模型的损失函数,分别记为第二损失函数和第三损失函数;
B3.基于梯度下降法,根据第一损失函数、第二损失函数和第三损失函数更新动作价值函数模型、插孔价值函数模型和策略函数模型的模型参数;
B4.根据插孔价值函数模型更新后的模型参数,更新目标价值函数模型的模型参数。
其中,步骤B1包括:
把选取的经验样本输入动作价值函数模型(实际上是把经验样本中的和/>输入动作价值函数模型),得到动作价值函数模型的输出量,记为第一输出量;
把选取的经验样本输入目标价值函数模型(实际上是把经验样本中的输入目标价值函数模型),得到目标价值函数模型的输出量,记为第二输出量;
根据选取的经验样本、第一输出量和第二输出量计算动作价值函数模型的损失函数,记为第一损失函数。
具体地,可把经验样本中的、第一输出量和第二输出量代入Soft Bellman残差公式计算该第一损失函数,该Soft Bellman残差公式为:
;
其中,为第一损失函数,/>为第一输出量,/>为第二输出量,/>、均表示计算期望,/>为折损系数。
其中,步骤B2包括:
把选取的经验样本输入插孔价值函数模型(实际上是把经验样本中的输入插孔价值函数模型),得到插孔价值函数模型的输出量,记为第三输出量;
把选取的经验样本输入策略函数模型(实际上是把经验样本中的输入策略函数模型),得到策略函数模型的输出量,记为第四输出量,并计算对应的动作似然概率(动作似然概率的计算方法为现有技术,此处不对其进行详述);
把选取的经验样本和第四输出量输入动作价值函数模型(实际上是把经验样本中的和第四输出量输入动作价值函数模型),得到动作价值函数的输出量,记为第五输出量;
根据第三输出量、第五输出量和动作似然概率计算插孔价值函数模型的损失函数,记为第二损失函数;
根据第五输出量和动作似然概率计算策略函数模型的损失函数,记为第三损失函数。
其中,可把第三输出量、第五输出量和动作似然概率代入soft均方根误差公式计算出第二损失函数,该soft均方根误差公式为:
;
其中,为第二损失函数,/>为第三输出量,/>为第五输出量,/>为动作似然概率,/>、/>均表示计算期望。
其中,可把第五输出量和动作似然概率代入KL散度公式计算第三损失函数,该KL散度公式为:
;
其中,为第三损失函数,/>表示计算期望。
其中,基于梯度下降法迭代更新神经网络模型的模型参数的过程为现有技术,此处不对其进行详述。
在一些优选实施方式中,步骤B4包括:通过以下公式更新目标价值函数模型的模型参数:
;
其中,为预设常数(可根据实际需要设置)。
步骤A408中,通过计算本训练回合各步训练的奖励值之和,得到本训练回合的总奖励值。
步骤A409中,若本训练回合的总奖励值与上一训练回合的总奖励值之间的偏差小于预设的偏差阈值,则判定总奖励值收敛;或者,若连续m(为预设的大于1的正整数,可根据实际需要设置)个训练回合的总奖励值与各自上一训练回合的总奖励值之间的偏差均小于预设的偏差阈值,则判定总奖励值收敛。
步骤A5中,在完成策略函数模型的优化后,在实际执行轴孔装配任务时,机械臂每次抓取到轴部件后,先根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于孔部件上表面,然后把机械臂末端的状态信息输入策略函数模型,获取当步的动作参数(两个轴向的前馈虚拟控制力),然后把动作参数中的两个轴向的前馈虚拟控制力施加到机械臂末端以使机械臂执行当步动作,执行当步动作后再次把机械臂末端的状态信息(执行动作后的状态信息)输入策略函数模型,获取下一步的动作参数施加到机械臂末端以使机械臂执行下一步动作,如此循环,直到机械臂末端的深度达到目标深度,完成一次轴孔装配任务。
由上可知,该基于前馈虚拟控制力的插孔方法,基于SAC算法构建价值函数模型和策略函数模型;策略函数模型的输出量为动作参数,动作参数包括在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,策略函数模型的输入量为机械臂的状态信息,状态信息包括策略函数模型的上一个输出量,工具坐标系OXYZ下的X轴方向和Y轴方向为垂直于轴部件的轴线的平面上的两个轴向;基于被机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2;工具坐标系OXYZ的Z轴正方向与目标坐标系O2X2Y2Z2的Z2轴正方向相反;根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于孔部件上表面;基于策略函数模型和预设的奖励函数,获取经验数据集,以配合价值函数模型训练优化策略函数模型的模型参数;利用优化模型参数后的策略函数模型进行动作参数的输出,用以控制机械臂执行轴孔装配任务;从而能够提高策略函数模型的训练效率。
参考图2,本申请提供了一种基于前馈虚拟控制力的插孔装置,包括:
模型构建模块1,用于基于SAC算法构建价值函数模型和策略函数模型;策略函数模型的输出量为动作参数,动作参数仅包括在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,策略函数模型的输入量为机械臂的状态信息,状态信息包括策略函数模型的上一个输出量,工具坐标系OXYZ下的X轴方向和Y轴方向为垂直于轴部件的轴线的平面上的两个轴向;
坐标系构建模块2,用于基于被机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2;工具坐标系OXYZ的Z轴正方向与目标坐标系O2X2Y2Z2的Z2轴正方向相反;
预压模块3,用于根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于孔部件上表面;
模型优化模块4,用于基于策略函数模型和预设的奖励函数,获取经验数据集,以配合价值函数模型训练优化策略函数模型的模型参数;
控制模块5,用于利用优化模型参数后的策略函数模型进行动作参数的输出,用以控制机械臂执行轴孔装配任务。
该插孔装置,在观测空间中加入对上一步动作的观测(即策略函数模型的输入量中包含策略函数模型的上一个输出量,在初始时刻,该上一个输出量默认为零),明确了机械臂当前的运动状态;同时,采用两个轴向的前馈虚拟控制力作为策略函数模型的输出量,用作机械臂的控制信号(即动作空间中仅有两个代表前馈虚拟控制力的参数),前馈虚拟控制力是一种模仿人拖动操作的控制信号,可使机械臂末端的力传感器在没有实际受力的情况下,接收到虚拟的受力信号,从而使机械臂末端沿着受力信号的方向做柔性运动,采用前馈虚拟控制力作为控制信号的好处是无需考虑机械臂运动的速度和加速度,同时与位姿控制信号相比,将策略函数模型的输出从6个值减少到2个值,降低了训练难度,提高了学习效率。其中,由于先用Z轴正方向的第一预设虚拟控制力使机械臂带动轴部件下端垂直朝向下压于孔部件上表面,只需要使轴部件沿孔部件上表面移动,当轴部件移动至对准孔位置时会在该第一预设虚拟控制力的作用下压入孔中,因此,只需要策略函数模型输出X轴方向和Y轴方向的前馈虚拟控制力两个即可驱使轴部件沿孔部件上表面移动,大大减少了策略函数模型输出的动作参数包含的参数数量(从现有技术的6个减少到2个),进而降低训练难度,提高学习效率,且在实际应用中能够提高运算速度,有利于提高装配效率。
其中,基于SAC算法构建价值函数模型和策略函数模型的具体构建方法为现有技术,此处不对其进行详述。其中,价值函数模型包括插孔价值函数模型、动作价值函数模型和目标价值函数模型。插孔价值函数模型、动作价值函数模型、目标价值函数模型和策略函数模型均为神经网络模型。通过设置该三个价值函数模型,在后续利用该三个价值函数模型配合对策略函数模型进行训练,一方面可提高学习速度,提高策略函数模型的训练效率,另一方面,可提升策略函数模型的探索能力,并增强策略函数模型生成策略的鲁棒性。
其中,插孔价值函数模型表示为,其输入量为/>(/>为机械臂在t时刻的状态信息),其模型参数为/>,其对应于/>的输出量为/>(该/>为/>状态下对策略函数模型的评价值,该评价值越大,策略函数模型的性能越好)。
其中,动作价值函数模型表示为,其输入量为/>和/>(/>的定义详见后文关于策略函数模型的说明),其模型参数为/>,其对应于/>和/>的输出量为/>(该/>为/>状态下执行动作/>后,对动作/>的合理性评价值,该合理性评价值越大,动作/>的合理性越好)。
其中,目标价值函数模型表示为,其输入量为/>(/>,为机械臂在t+1时刻的状态信息,当t时刻为当前时刻的时候,/>为下一时刻的状态信息),其模型参数为/>,其对应于/>的输出量为/>(该/>为/>状态下对策略函数模型的评价值,该评价值越大,策略函数模型的性能越好)。其中,目标价值函数模型与插孔价值函数模型的模型结构相同(即神经网络模型结构相同,从而/>与/>中的参数具有一一对应关系),且在初始状态下(即进行优化训练之前)两者的模型参数相同(即此时的/>与相同)。
其中,策略函数模型表示为,其输入量为/>,其模型参数为/>,其对应于/>的输出量为/>(/>为t时刻的动作参数),其中,/>,/>为X轴方向的前馈虚拟控制力,/>为Y轴方向的前馈虚拟控制力。当t时刻为当前时刻的时候,策略函数模型的上一个输出量记为/>,即上一时刻的动作参数。
具体地,坐标系构建模块2在基于被机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2的时候,执行:
基于右手螺旋定则,以轴部件的下端平面的中心点为原点O,沿轴部件的轴线朝下为Z轴正方向,建立工具坐标系OXYZ;
基于右手螺旋定则,以孔部件上表面的孔圆心为原点O1,沿孔部件的孔轴线朝上为Z1轴正方向,建立孔部件坐标系O1X1Y1Z1;
调整机械臂末端位姿使工具坐标系OXYZ的XY平面与孔部件坐标系O1X1Y1Z1的X1Y1平面平行,且Z轴正方向与Z1轴正方向相反,并根据孔部件的孔径调整工具坐标系OXYZ原点与孔部件坐标系O1X1Y1Z1原点的相对位置;
根据孔部件的孔径,使孔部件坐标系O1X1Y1Z1在X1Y1平面内随机平移,得到目标坐标系O2X2Y2Z2。
在实际轴孔装配任务中,系统无法获取孔部件的精确位置信息,获取到的孔部件位置信息是一个模糊的范围,因此在训练优化中通过随机误差建立目标坐标系来模拟实际装配任务中的位置信息误差,同时还可以提高训练所得模型的泛化能力。
其中,若轴部件与孔部件的孔之间没有周向角度的配合要求(例如轴部件为圆柱轴,孔部件的孔为对应的圆孔,圆柱轴可以绕轴线旋转任意角度并插入圆孔),则X轴正方向可以是轴部件的下端平面中的任意方向,Y轴正方向根据右手螺旋定则确定,X1轴正方向可以是孔部件的上表面中的任意方向,Y1轴正方向根据右手螺旋定则确定。若轴部件与孔部件的孔之间有周向角度的配合要求(例如轴部件为棱柱轴,孔部件的孔为对应的棱柱孔,棱柱轴的棱角需要与棱柱孔的棱角一一对应),则X轴正方向从原点O指向轴部件的下端平面的一个特征点(例如一个角点),Y轴正方向根据右手螺旋定则确定,X1轴正方向从原点O1指向孔部件的孔的相应的特征点(例如孔的相应的一个角点),Y1轴正方向根据右手螺旋定则确定。
优选地,坐标系构建模块2在调整机械臂末端位姿的时候,调整机械臂末端位姿使工具坐标系OXYZ的XY平面与孔部件坐标系O1X1Y1Z1的X1Y1平面平行,且Z轴正方向与Z1轴正方向相反的同时,还使X轴正方向与X1轴正方向相同;从而,当轴部件与孔部件的孔之间有周向角度的配合要求的时候,后续只需要控制机械臂在平面内平移至原点O对准原点O1,轴部件即可插入孔中,无需进行姿态角度的调整,从而策略函数模型的输出量无需包含与角度调节相关的参数,保证训练效率。
优选地,坐标系构建模块2在根据孔部件的孔径调整工具坐标系OXYZ原点与孔部件坐标系O1X1Y1Z1原点的相对位置的时候,执行:
获取孔部件的孔径;
根据孔径确定第一参考数值范围;
在第一参考数值范围内随机生成第一随机量;
调整工具坐标系OXYZ的原点位置,使工具坐标系OXYZ的原点与坐标系O1X1Y1Z1的Z1轴的距离等于第一随机量。
通过随机调整工具坐标系OXYZ原点与孔部件坐标系O1X1Y1Z1原点的相对位置,使轴部件与孔部件的初始接触位置随机变化,有利于进一步提高训练所得模型的泛化能力。
其中,对于孔为圆孔的孔部件,孔径可以是直径或半径,对于孔为非圆孔的孔部件,孔径可以是孔的最大宽度或该最大宽度的一半。
以下以孔为圆孔且孔径为半径的情况为例进行说明。
第一参考数值范围可根据实际需要设置,例如为[R,2R],R为孔径(半径),在该范围内,可以保证轴部件与孔部件的初始接触位置与孔之间的距离不会过大,可减小后续训练优化过程中,每个训练回合内轴部件移动至能够插入孔的位置所需的训练步数,从而有利于提高训练效率。但第一参考数值范围不限于此。
在调整工具坐标系OXYZ的原点位置,使工具坐标系OXYZ的原点与坐标系O1X1Y1Z1的Z1轴的距离等于第一随机量的时候,原点O1到原点O的方向可随机选定。即实际上,可以把原点O调整至以Z1轴为中轴线且半径为第一随机量的圆柱面上的任意位置。
优选地,坐标系构建模块2在根据孔部件的孔径,使孔部件坐标系O1X1Y1Z1在X1Y1平面内随机平移,得到目标坐标系O2X2Y2Z2的时候,执行:
获取孔部件的孔径;
根据孔径确定第二参考数值范围;
在第二参考数值范围内随机生成第二随机量和第三随机量;
使孔部件坐标系O1X1Y1Z1沿X1轴移动第二随机量,并使孔部件坐标系O1X1Y1Z1沿Y1轴移动第三随机量,得到目标坐标系O2X2Y2Z2。
通过该方式使目标坐标系O2X2Y2Z2与孔部件坐标系O1X1Y1Z1之间产生范围受控的随机位置误差,从而可保证训练所得模型的泛化能力。
同样以下以孔为圆孔且孔径为半径的情况为例进行说明。
第二参考数值范围可根据实际需要设置,例如为[-0.5R,0.5R],一般的系统获取孔部件的位置信息的误差在该范围内,从而保证训练所得模型具有足够的泛化能力。但第二参考数值范围不限于此。
其中,预压模块3在根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于孔部件上表面的时候,给定机械臂末端一个沿Z轴正方向的第一预设虚拟控制力(可根据实际需要设置),使机械臂带动轴部件下端压于孔部件上表面,从而预先对轴部件施加一个向下的压力,并在后续训练过程中保持该压力,当轴部件移动至原点O对准原点O1的时候,轴部件会自动在该压力下插入孔中,从而策略函数模型的输出量无需包含用于使机械臂沿Z轴移动的前馈虚拟控制力,保证训练效率。
具体地,模型优化模块4在基于策略函数模型和预设的奖励函数,获取经验数据集,以配合价值函数模型训练优化策略函数模型的模型参数的时候,执行:
A401.开启一个新的训练回合,并初始化本训练回合的训练步数为1;
A402.获取机械臂的状态信息,记为第一状态信息,把第一状态信息输入策略函数模型,得到策略函数模型输出的动作参数,记为第一动作参数;
A403.把第一动作参数施加到机械臂末端,获取机械臂末端执行动作后的状态信息,记为第二状态信息,并把第一状态信息和第二状态信息输入奖励函数,得到对应的奖励值;
A404.根据第二状态信息判断机械臂末端是否到达目标深度,若达到,则把完成参数赋值为真,若未达到,则在训练步数超过预设的最大步数(可根据实际需要设置)时把完成参数赋值为真,在训练步数不超过预设的最大步数时把完成参数赋值为假;
A405.把第一状态信息、第一动作参数、第二状态信息、奖励值和完成参数作为一个经验样本,添加到经验数据集;
A406.若经验数据集的经验样本数量大于预设目标数(可根据实际需要设置),则从经验数据集中随机选取预设目标数的经验样本,用以对价值函数模型和策略函数模型的模型参数进行优化,并执行步骤A407;若经验数据集的经验样本数量不大于预设目标数,则直接执行步骤A407;
A407.若完成参数为真,则执行步骤A408;若完成参数为假,则令训练步数加1,并返回步骤A402;
A408.结束本训练回合,并统计本训练回合的总奖励值,执行步骤A409;
A409.若总奖励值收敛,则结束训练优化过程,否则,清零前馈虚拟控制力(即清零)和撤除第一预设虚拟控制力并使坐标系构建模块2、预压模块3和模型优化模块4重复其功能操作。
例如,用k表示训练步数,从而初始化后k=1。
本实施例中,状态信息还包括机械臂末端在目标坐标系O2X2Y2Z2下的坐标以及在工具坐标系OXYZ下的力和扭矩。以下,以t时刻为当前时刻进行说明,t时刻的状态信息(即第一状态信息)可表示为:
;
其中,、/>、/>为机械臂末端t时刻的在目标坐标系O2X2Y2Z2下的三个坐标值,、/>、/>为机械臂末端t时刻在工具坐标系OXYZ下的三个坐标轴向的力,/>、/>、为机械臂末端t时刻在工具坐标系OXYZ的三个坐标轴向的力矩,/>、/>为策略函数模型的上一个输出量中的两个前馈虚拟控制力(分别为在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,在初始时刻,/>、/>均为0)。由于此处的t时刻代表当前时刻,机械臂末端执行动作后的时刻为t+1时刻,即为当前时刻的下一时刻,此时,可用/>表示执行动作后的状态信息(即第二状态信息)。
其中,奖励函数具体可根据实际需要设置,例如:
;
其中,为奖励值,/>、/>、/>、/>均为预设常数参数(可根据实现需要设置),/>为t时刻的(即机械臂末端执行动作前)工具坐标系原点O与目标坐标系原点O2之间的距离(根据第一状态信息中的坐标值计算得到),/>为机械臂末端执行动作后工具坐标系原点O与目标坐标系原点O2之间的距离(根据第二状态信息中的坐标值计算得到),/>为t时刻的机械臂末端的深度,/>为机械臂末端执行动作后机械臂末端的深度。
其中,条件A为:执行动作后的机械臂末端未达到目标深度,且训练步数不超过预设的最大步数。条件B为:执行动作后的机械臂末端达到目标深度。条件C为:执行动作后的机械臂末端未达到目标深度,且训练步数超过预设的最大步数。使用该奖励函数能够鼓励策略函数模型生成动作使机械臂末端向目标坐标系原点O2移动,并鼓励策略函数模型生成动作使机械臂末端在目标坐标系原点O2附近寻孔并插入,提高训练效率。但奖励函数不限于此。
其中,可根据执行动作后的状态信息判断机械臂末端是否到达目标深度。具体包括:基于第二状态信息,根据机械臂末端在目标坐标系O2X2Y2Z2下的坐标判断机械臂末端是否到达目标深度。其中,机械臂末端的深度,实际上是指机械臂末端在Z2轴负方向移动的距离,可计算机械臂末端初始的Z2坐标值(指轴部件下端与孔部件上表面开始接触时机械臂末端初始的Z2坐标值)与执行动作后的机械臂末端的Z2坐标值之差作为机械臂末端的深度,该深度实际上反映了轴部件插入孔的插入深度。
其中,当前时刻得到的经验样本可表示为,/>为完成参数。
对于价值函数模型包括插孔价值函数模型、动作价值函数模型和目标价值函数模型的情况;步骤A406包括:
B1.根据选取的经验样本、动作价值函数模型和目标价值函数模型,获取动作价值函数模型的损失函数,记为第一损失函数;
B2.根据选取的经验样本、插孔价值函数模型、策略函数模型和动作价值函数模型,获取插孔价值函数模型的损失函数和策略函数模型的损失函数,分别记为第二损失函数和第三损失函数;
B3.基于梯度下降法,根据第一损失函数、第二损失函数和第三损失函数更新动作价值函数模型、插孔价值函数模型和策略函数模型的模型参数;
B4.根据插孔价值函数模型更新后的模型参数,更新目标价值函数模型的模型参数。
其中,步骤B1包括:
把选取的经验样本输入动作价值函数模型(实际上是把经验样本中的和/>输入动作价值函数模型),得到动作价值函数模型的输出量,记为第一输出量;
把选取的经验样本输入目标价值函数模型(实际上是把经验样本中的输入目标价值函数模型),得到目标价值函数模型的输出量,记为第二输出量;
根据选取的经验样本、第一输出量和第二输出量计算动作价值函数模型的损失函数,记为第一损失函数。
具体地,可把经验样本中的、第一输出量和第二输出量代入Soft Bellman残差公式计算该第一损失函数,该Soft Bellman残差公式为:
;
其中,为第一损失函数,/>为第一输出量,/>为第二输出量,/>、均表示计算期望,/>为折损系数。
其中,步骤B2包括:
把选取的经验样本输入插孔价值函数模型(实际上是把经验样本中的输入插孔价值函数模型),得到插孔价值函数模型的输出量,记为第三输出量;
把选取的经验样本输入策略函数模型(实际上是把经验样本中的输入策略函数模型),得到策略函数模型的输出量,记为第四输出量,并计算对应的动作似然概率(动作似然概率的计算方法为现有技术,此处不对其进行详述);
把选取的经验样本和第四输出量输入动作价值函数模型(实际上是把经验样本中的和第四输出量输入动作价值函数模型),得到动作价值函数的输出量,记为第五输出量;
根据第三输出量、第五输出量和动作似然概率计算插孔价值函数模型的损失函数,记为第二损失函数;
根据第三输出量和动作似然概率计算策略函数模型的损失函数,记为第三损失函数。
其中,可把第三输出量、第五输出量和动作似然概率代入soft均方根误差公式计算出第二损失函数,该soft均方根误差公式为:
;
其中,为第二损失函数,/>为第三输出量,/>为第五输出量,/>为动作似然概率,/>、/>均表示计算期望。
其中,可把第五输出量和动作似然概率代入KL散度公式计算第三损失函数,该KL散度公式为:
;
其中,为第三损失函数,/>表示计算期望。
其中,基于梯度下降法迭代更新神经网络模型的模型参数的过程为现有技术,此处不对其进行详述。
在一些优选实施方式中,步骤B4包括:通过以下公式更新目标价值函数模型的模型参数:
;
其中,为预设常数(可根据实际需要设置)。
步骤A408中,通过计算本训练回合各步训练的奖励值之和,得到本训练回合的总奖励值。
步骤A409中,若本训练回合的总奖励值与上一训练回合的总奖励值之间的偏差小于预设的偏差阈值,则判定总奖励值收敛;或者,若连续m(为预设的大于1的正整数,可根据实际需要设置)个训练回合的总奖励值与各自上一训练回合的总奖励值之间的偏差均小于预设的偏差阈值,则判定总奖励值收敛。
控制模块5在利用优化模型参数后的策略函数模型进行动作参数的输出,用以控制机械臂执行轴孔装配任务的时候,在完成策略函数模型的优化后,在实际执行轴孔装配任务时,机械臂每次抓取到轴部件后,先根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于孔部件上表面,然后把机械臂末端的状态信息输入策略函数模型,获取当步的动作参数(两个轴向的前馈虚拟控制力),然后把动作参数中的两个轴向的前馈虚拟控制力施加到机械臂末端以使机械臂执行当步动作,执行当步动作后再次把机械臂末端的状态信息(执行动作后的状态信息)输入策略函数模型,获取下一步的动作参数施加到机械臂末端以使机械臂执行下一步动作,如此循环,直到机械臂末端的深度达到目标深度,完成一次轴孔装配任务。
由上可知,该基于前馈虚拟控制力的插孔装置,基于SAC算法构建价值函数模型和策略函数模型;策略函数模型的输出量为动作参数,动作参数包括在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,策略函数模型的输入量为机械臂的状态信息,状态信息包括策略函数模型的上一个输出量,工具坐标系OXYZ下的X轴方向和Y轴方向为垂直于轴部件的轴线的平面上的两个轴向;基于被机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2;工具坐标系OXYZ的Z轴正方向与目标坐标系O2X2Y2Z2的Z2轴正方向相反;根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于孔部件上表面;基于策略函数模型和预设的奖励函数,获取经验数据集,以配合价值函数模型训练优化策略函数模型的模型参数;利用优化模型参数后的策略函数模型进行动作参数的输出,用以控制机械臂执行轴孔装配任务;从而能够提高策略函数模型的训练效率。
请参照图3,图3为本申请实施例提供的一种电子设备的结构示意图,本申请提供一种电子设备,包括:处理器301和存储器302,处理器301和存储器302通过通信总线303和/或其他形式的连接机构(未标出)互连并相互通讯,存储器302存储有处理器301可执行的计算机程序,当电子设备运行时,处理器301执行该计算机程序,以执行上述实施例的任一可选的实现方式中的基于前馈虚拟控制力的插孔方法,以实现以下功能:基于SAC算法构建价值函数模型和策略函数模型;策略函数模型的输出量为动作参数,动作参数包括在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,策略函数模型的输入量为机械臂的状态信息,状态信息包括策略函数模型的上一个输出量,工具坐标系OXYZ下的X轴方向和Y轴方向为垂直于轴部件的轴线的平面上的两个轴向;基于被机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2;工具坐标系OXYZ的Z轴正方向与目标坐标系O2X2Y2Z2的Z2轴正方向相反;根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于孔部件上表面;基于策略函数模型和预设的奖励函数,获取经验数据集,以配合价值函数模型训练优化策略函数模型的模型参数;利用优化模型参数后的策略函数模型进行动作参数的输出,用以控制机械臂执行轴孔装配任务。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的基于前馈虚拟控制力的插孔方法,以实现以下功能:基于SAC算法构建价值函数模型和策略函数模型;策略函数模型的输出量为动作参数,动作参数包括在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,策略函数模型的输入量为机械臂的状态信息,状态信息包括策略函数模型的上一个输出量,工具坐标系OXYZ下的X轴方向和Y轴方向为垂直于轴部件的轴线的平面上的两个轴向;基于被机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2;工具坐标系OXYZ的Z轴正方向与目标坐标系O2X2Y2Z2的Z2轴正方向相反;根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于孔部件上表面;基于策略函数模型和预设的奖励函数,获取经验数据集,以配合价值函数模型训练优化策略函数模型的模型参数;利用优化模型参数后的策略函数模型进行动作参数的输出,用以控制机械臂执行轴孔装配任务。其中,计算机可读存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory, 简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-Only Memory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种基于前馈虚拟控制力的插孔方法,其特征在于,包括步骤:
A1.基于SAC算法构建价值函数模型和策略函数模型;所述策略函数模型的输出量为动作参数,所述动作参数仅包括在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,所述策略函数模型的输入量为机械臂的状态信息,所述状态信息包括所述策略函数模型的上一个所述输出量,所述工具坐标系OXYZ下的X轴方向和Y轴方向为垂直于轴部件的轴线的平面上的两个轴向;
A2.基于被所述机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2;所述工具坐标系OXYZ的Z轴正方向与所述目标坐标系O2X2Y2Z2的Z2轴正方向相反;
A3.根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于所述孔部件上表面;
A4.基于所述策略函数模型和预设的奖励函数,获取经验数据集,以配合所述价值函数模型训练优化所述策略函数模型的模型参数;
A5.利用优化所述模型参数后的所述策略函数模型进行动作参数的输出,用以控制所述机械臂执行轴孔装配任务;
步骤A2包括:
A201.基于右手螺旋定则,以所述轴部件的下端平面的中心点为原点O,沿所述轴部件的轴线朝下为Z轴正方向,建立所述工具坐标系OXYZ;
A202.基于右手螺旋定则,以所述孔部件上表面的孔圆心为原点O1,沿所述孔部件的孔轴线朝上为Z1轴正方向,建立孔部件坐标系O1X1Y1Z1;
A203.调整所述机械臂末端位姿使所述工具坐标系OXYZ的XY平面与所述孔部件坐标系O1X1Y1Z1的X1Y1平面平行,且Z轴正方向与Z1轴正方向相反,并根据所述孔部件的孔径调整所述工具坐标系OXYZ原点与所述孔部件坐标系O1X1Y1Z1原点的相对位置;
A204.根据所述孔部件的孔径,使所述孔部件坐标系O1X1Y1Z1在X1Y1平面内随机平移,得到所述目标坐标系O2X2Y2Z2。
2.根据权利要求1所述的基于前馈虚拟控制力的插孔方法,其特征在于,所述根据所述孔部件的孔径调整所述工具坐标系OXYZ原点与所述孔部件坐标系O1X1Y1Z1原点的相对位置的步骤包括:
获取所述孔部件的所述孔径;
根据所述孔径确定第一参考数值范围;
在所述第一参考数值范围内随机生成第一随机量;
调整所述工具坐标系OXYZ的原点位置,使所述工具坐标系OXYZ的原点与所述坐标系O1X1Y1Z1的Z1轴的距离等于所述第一随机量。
3.根据权利要求1所述的基于前馈虚拟控制力的插孔方法,其特征在于,步骤A204包括:
获取所述孔部件的所述孔径;
根据所述孔径确定第二参考数值范围;
在所述第二参考数值范围内随机生成第二随机量和第三随机量;
使所述孔部件坐标系O1X1Y1Z1沿X1轴移动所述第二随机量,并使所述孔部件坐标系O1X1Y1Z1沿Y1轴移动所述第三随机量,得到所述目标坐标系O2X2Y2Z2。
4.根据权利要求1所述的基于前馈虚拟控制力的插孔方法,其特征在于,步骤A4包括:
A401.开启一个新的训练回合,并初始化本训练回合的训练步数为1;
A402.获取所述机械臂的状态信息,记为第一状态信息,把所述第一状态信息输入所述策略函数模型,得到所述策略函数模型输出的动作参数,记为第一动作参数;
A403.把所述第一动作参数施加到所述机械臂末端,获取所述机械臂末端执行动作后的状态信息,记为第二状态信息,并把所述第一状态信息和所述第二状态信息输入所述奖励函数,得到对应的奖励值;
A404.根据所述第二状态信息判断所述机械臂末端是否到达目标深度,若达到,则把完成参数赋值为真,若未达到,则在训练步数超过预设的最大步数时把完成参数赋值为真,在训练步数不超过预设的最大步数时把完成参数赋值为假;
A405.把所述第一状态信息、所述第一动作参数、所述第二状态信息、所述奖励值和所述完成参数作为一个经验样本,添加到所述经验数据集;
A406.若所述经验数据集的经验样本数量大于预设目标数,则从所述经验数据集中随机选取预设目标数的所述经验样本,用以对所述价值函数模型和所述策略函数模型的模型参数进行优化,并执行步骤A407;若所述经验数据集的经验样本数量不大于预设目标数,则直接执行步骤A407;
A407.若所述完成参数为真,则执行步骤A408;若所述完成参数为假,则令训练步数加1,并返回步骤A402;
A408.结束本训练回合,并统计本训练回合的总奖励值,执行步骤A409;
A409.若所述总奖励值收敛,则结束训练优化过程,否则,清零前馈虚拟控制力和撤除所述第一预设虚拟控制力并返回步骤A2。
5.根据权利要求4所述的基于前馈虚拟控制力的插孔方法,其特征在于,所述状态信息还包括所述机械臂末端在所述目标坐标系O2X2Y2Z2下的坐标以及在所述工具坐标系OXYZ下的力和扭矩;
步骤A404中,基于所述第二状态信息,根据所述机械臂末端在所述目标坐标系O2X2Y2Z2下的坐标判断所述机械臂末端是否到达目标深度。
6.根据权利要求4所述的基于前馈虚拟控制力的插孔方法,其特征在于,所述价值函数模型包括插孔价值函数模型、动作价值函数模型和目标价值函数模型;
步骤A406中对所述价值函数模型和所述策略函数模型的模型参数进行优化,具体包括:
B1.根据选取的所述经验样本、所述动作价值函数模型和所述目标价值函数模型,获取所述动作价值函数模型的损失函数,记为第一损失函数;
B2.根据选取的所述经验样本、所述插孔价值函数模型、所述策略函数模型和所述动作价值函数模型,获取所述插孔价值函数模型的损失函数和所述策略函数模型的损失函数,分别记为第二损失函数和第三损失函数;
B3.基于梯度下降法,根据所述第一损失函数、所述第二损失函数和所述第三损失函数更新所述动作价值函数模型、所述插孔价值函数模型和所述策略函数模型的模型参数;
B4.根据所述插孔价值函数模型更新后的模型参数,更新所述目标价值函数模型的模型参数。
7.一种基于前馈虚拟控制力的插孔装置,其特征在于,包括:
模型构建模块,用于基于SAC算法构建价值函数模型和策略函数模型;所述策略函数模型的输出量为动作参数,所述动作参数仅包括在工具坐标系OXYZ下的X轴方向和Y轴方向的前馈虚拟控制力,所述策略函数模型的输入量为机械臂的状态信息,所述状态信息包括所述策略函数模型的上一个所述输出量,所述工具坐标系OXYZ下的X轴方向和Y轴方向为垂直于轴部件的轴线的平面上的两个轴向;
坐标系构建模块,用于基于被所述机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2;所述工具坐标系OXYZ的Z轴正方向与所述目标坐标系O2X2Y2Z2的Z2轴正方向相反;
预压模块,用于根据沿工具坐标系OXYZ的Z轴正方向的第一预设虚拟控制力,控制机械臂带动轴部件下端垂直朝向下压于所述孔部件上表面;
模型优化模块,用于基于所述策略函数模型和预设的奖励函数,获取经验数据集,以配合所述价值函数模型训练优化所述策略函数模型的模型参数;
控制模块,用于利用优化所述模型参数后的所述策略函数模型进行动作参数的输出,用以控制所述机械臂执行轴孔装配任务;
所述坐标系构建模块在基于被所述机械臂末端夹持的轴部件的位置构建工具坐标系OXYZ,并基于孔部件的位置构建目标坐标系O2X2Y2Z2的时候,执行:
基于右手螺旋定则,以所述轴部件的下端平面的中心点为原点O,沿所述轴部件的轴线朝下为Z轴正方向,建立所述工具坐标系OXYZ;
基于右手螺旋定则,以所述孔部件上表面的孔圆心为原点O1,沿所述孔部件的孔轴线朝上为Z1轴正方向,建立孔部件坐标系O1X1Y1Z1;
调整所述机械臂末端位姿使所述工具坐标系OXYZ的XY平面与所述孔部件坐标系O1X1Y1Z1的X1Y1平面平行,且Z轴正方向与Z1轴正方向相反,并根据所述孔部件的孔径调整所述工具坐标系OXYZ原点与所述孔部件坐标系O1X1Y1Z1原点的相对位置;
根据所述孔部件的孔径,使所述孔部件坐标系O1X1Y1Z1在X1Y1平面内随机平移,得到所述目标坐标系O2X2Y2Z2。
8.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有所述处理器能够执行的计算机程序,所述处理器执行所述计算机程序时,运行如权利要求1-6任一项所述的基于前馈虚拟控制力的插孔方法中的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-6任一项所述的基于前馈虚拟控制力的插孔方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310910385.4A CN116619007B (zh) | 2023-07-24 | 2023-07-24 | 一种基于前馈虚拟控制力的插孔方法及其相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310910385.4A CN116619007B (zh) | 2023-07-24 | 2023-07-24 | 一种基于前馈虚拟控制力的插孔方法及其相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116619007A CN116619007A (zh) | 2023-08-22 |
CN116619007B true CN116619007B (zh) | 2023-10-20 |
Family
ID=87597658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310910385.4A Active CN116619007B (zh) | 2023-07-24 | 2023-07-24 | 一种基于前馈虚拟控制力的插孔方法及其相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116619007B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005028532A (ja) * | 2003-07-08 | 2005-02-03 | Fanuc Ltd | 嵌合装置 |
CN104057290A (zh) * | 2014-06-24 | 2014-09-24 | 中国科学院自动化研究所 | 一种基于视觉和力反馈控制的机器人装配方法与系统 |
CN110238839A (zh) * | 2019-04-11 | 2019-09-17 | 清华大学 | 一种利用环境预测优化非模型机器人多轴孔装配控制方法 |
CN112192614A (zh) * | 2020-10-09 | 2021-01-08 | 西南科技大学 | 一种基于人机合作的核运维机器人轴孔装配方法 |
CN113751998A (zh) * | 2021-09-03 | 2021-12-07 | 中国科学院宁波材料技术与工程研究所 | 一种基于模糊控制的机器人轴孔装配方法 |
CN116408804A (zh) * | 2023-05-15 | 2023-07-11 | 浙江大学 | 一种基于门控循环单元的轴孔装配插孔方法 |
-
2023
- 2023-07-24 CN CN202310910385.4A patent/CN116619007B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005028532A (ja) * | 2003-07-08 | 2005-02-03 | Fanuc Ltd | 嵌合装置 |
CN104057290A (zh) * | 2014-06-24 | 2014-09-24 | 中国科学院自动化研究所 | 一种基于视觉和力反馈控制的机器人装配方法与系统 |
CN110238839A (zh) * | 2019-04-11 | 2019-09-17 | 清华大学 | 一种利用环境预测优化非模型机器人多轴孔装配控制方法 |
CN112192614A (zh) * | 2020-10-09 | 2021-01-08 | 西南科技大学 | 一种基于人机合作的核运维机器人轴孔装配方法 |
CN113751998A (zh) * | 2021-09-03 | 2021-12-07 | 中国科学院宁波材料技术与工程研究所 | 一种基于模糊控制的机器人轴孔装配方法 |
CN116408804A (zh) * | 2023-05-15 | 2023-07-11 | 浙江大学 | 一种基于门控循环单元的轴孔装配插孔方法 |
Non-Patent Citations (1)
Title |
---|
基于深度强化学习的仿真机器人轴孔装配研究;刘乃龙;刘钊铭;崔龙;;计算机仿真(12);第296-301页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116619007A (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11701773B2 (en) | Viewpoint invariant visual servoing of robot end effector using recurrent neural network | |
CN107263464B (zh) | 机器学习装置、机械系统、制造系统以及机器学习方法 | |
US10981270B1 (en) | Operating multiple testing robots based on robot instructions and/or environmental parameters received in a request | |
US20180036882A1 (en) | Layout setting method and layout setting apparatus | |
US20210325894A1 (en) | Deep reinforcement learning-based techniques for end to end robot navigation | |
CN102245356B (zh) | 用于生产中优化用于组装的机器人的参数的方法和系统 | |
JP7463777B2 (ja) | 制御装置、学習装置、ロボットシステム、および方法 | |
US11458630B2 (en) | Mitigating reality gap through simulating compliant control and/or compliant contact in robotic simulator | |
Chatzilygeroudis et al. | Benchmark for bimanual robotic manipulation of semi-deformable objects | |
Navarro-Gonzalez et al. | On-line knowledge acquisition and enhancement in robotic assembly tasks | |
KR20200072592A (ko) | 로봇용 학습 프레임워크 설정방법 및 이를 수행하는 디지털 제어 장치 | |
WO2021033486A1 (ja) | モデル生成装置、モデル生成方法、制御装置及び制御方法 | |
Liu et al. | Learning peg-in-hole assembly using Cartesian DMPs with feedback mechanism | |
US20220016763A1 (en) | Self-learning industrial robotic system | |
Li et al. | Robotic impedance learning for robot-assisted physical training | |
CN116619007B (zh) | 一种基于前馈虚拟控制力的插孔方法及其相关设备 | |
CN112965372A (zh) | 基于强化学习的微零件精密装配方法、装置和系统 | |
CN114571456B (zh) | 基于机器人技能学习的电连接器装配方法及系统 | |
Caporali et al. | Deformable linear objects manipulation with online model parameters estimation | |
CN114789453B (zh) | 机械臂动态pid控制方法、装置、电子设备及存储介质 | |
EP3900887A1 (en) | Robot collision detection using cascading variational autoencoder | |
CN112292239B (zh) | 用于计算机辅助地确定用于适宜操作技术系统的调节参数的方法和设备 | |
US20220317659A1 (en) | Transfer between Tasks in Different Domains | |
Huang et al. | Accelerating Training of Reinforcement Learning-Based Construction Robots in Simulation Using Demonstrations Collected in Virtual Reality | |
US20230095351A1 (en) | Offline meta reinforcement learning for online adaptation for robotic control tasks |
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 |