一种多机械臂的协作方法转让专利

申请号 : CN202110621299.2

文献号 : CN113305845B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王涛罗冠聪胡博程良伦

申请人 : 广东工业大学

摘要 :

本发明公开了一种多机械臂的协作方法,其方法包括:S1,根据所机械臂的构型信息和自由度数据以及机械臂的所有随机平面基座姿势信息,编写Bi‑RRT*算法,得到训练集和测试集,S2,基于训练集和测试集,对机械臂进行训练和测试,得到机械臂测试数据,S3,基于测试数据,判断机械臂是否协作完成任务,若是,则执行步骤S4,若否,则执行步骤S5,S4,对协作完成任务的机械臂进行考虑实际延时的仿真验证,S5,将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,并引导所没有协作完成任务的机械臂摆脱局部最小值。本发明通过一种多机械臂的协作方法实现最短用时的路径规划和协作任务的无等待规划,提高多机械臂的实时协同控制的效率。

权利要求 :

1.一种多机械臂的协作方法,其特征在于,包括:

步骤S1,根据所获取的机械臂的构型信息和自由度数据以及机械臂的所有随机平面基座姿势信息,编写Bi‑RRT*算法,得到训练集和测试集;

步骤S2,基于所述训练集和所述测试集,对所有机械臂进行训练和测试,得到机械臂的测试数据;

步骤S3,基于所述测试数据,判断机械臂是否协作完成任务;若是,则执行步骤S4;若否,则执行步骤S5;

步骤S4,对协作完成任务的机械臂进行考虑实际延时的仿真验证;

步骤S5,将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,并引导所述没有协作完成任务的机械臂摆脱局部最小值;

所述步骤S1包括:

步骤S11,根据所获取的机械臂的构型和自由度以及机械臂的所有随机平面基座姿势信息,把机械臂设置为初始姿势;

步骤S12,基于机械臂的初始姿势,计算多个目标末端执行器位置的反向运动解,生成对应数量的无碰撞复合关节节点;

步骤S13,根据机械臂的所处状态和所述无碰撞复合关节节点,计算得到不同状态下机械臂的目标姿势,并组合不同状态下预设数量的机械臂的不同数量的目标姿势,得到训练集和测试集。

2.根据权利要求1所述的多机械臂的协作方法,其特征在于,所述步骤S13包括:步骤S131,当机械臂的所处状态为静态模式时,计算目标末端执行器姿势;

步骤S132,当机械臂的所处状态为动态模式时,计算当前插值关节配置的正向运动解作为当前的动态目标姿势;

步骤S133,组合静态模式下第一预定数量机械臂的第二预定数量的目标姿势,得到训练集;

步骤S134,组合静态模式下第三预定数量机械臂的第四预定数量的目标姿势,以及动态模式下第五预定数量机械臂的第六预定数量的目标姿势,得到测试集。

3.根据权利要求1所述的多机械臂的协作方法,其特征在于,所述步骤S2包括:步骤S21,基于所述训练集,对所有所述机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂;

步骤S22,根据所述测试集,对所述机械臂的训练数据以及所述训练后的机械臂进行测试,得到机械臂的测试数据。

4.根据权利要求3所述的多机械臂的协作方法,其特征在于,所述步骤S21包括:步骤S211,将所述训练集中第七预设数量的目标姿势设定为验证集,对所述机械臂进行验证,得到机械臂的历史观测值;

步骤S212,基于所述训练集和所述历史观测值,对所述机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂。

5.根据权利要求4所述的多机械臂的协作方法,其特征在于,所述步骤S212包括:步骤S2121,将所述历史观测值输入到训练任务中预置的状态编码网络模型,得到状态序列数据;所述训练任务由所述训练集组成;

步骤S2122,将所述状态序列数据输入到预置的运动规划网络模型,得到机械臂动作的输出值;

步骤S2123,基于所述机械臂动作的输出值以及机械臂的初始姿势信息进行汇编,得到机械臂的训练数据以及训练后的机械臂。

说明书 :

一种多机械臂的协作方法

技术领域

[0001] 本发明涉及机械臂协调与操作的领域,尤其涉及一种多机械臂的协作方法。

背景技术

[0002] 随着机械臂技术的不断发展,单机械臂的控制规划已无法满足越来月复杂的场景需求。多机械臂系统工作成为了新的解决方案,而传统的运动规划算法会随机械臂的数量增加而成指数增加,无法满足多机械臂的实时协同控制。
[0003] 多机械臂协同控制算法主要有主从控制和位置/力混合控制两种策略。前者是先规划主机械臂轨迹,再将该轨迹作为从机械臂的约束,然后再从机械臂的轨迹;后者则同通过状态分解将位置控制与力控制解耦来提高精度和速度。但以上两种方法的求解难度都会随机械臂的规模增加而指数增加,无法拓展到大规模的多机械臂协同控制。
[0004] 因此,为了实现多机械臂的实时协同控制,解决目前存在的无法通过现有的多机械臂协同控制算法实现大规模的多机械臂协同控制的技术问题,亟需构建一种多机械臂的协作方法。

发明内容

[0005] 本发明提供了一种多机械臂的协作方法,解决了目前存在的无法通过现有的多机械臂协同控制算法实现大规模的多机械臂协同控制的技术问题。
[0006] 第一方面,本发明提供了一种多机械臂的协作方法,包括:
[0007] 步骤S1,根据所获取的机械臂的构型信息和自由度数据以及机械臂的所有随机平面基座姿势信息,编写Bi‑RRT*算法,得到训练集和测试集;
[0008] 步骤S2,基于所述训练集和所述测试集,对所有机械臂进行训练和测试,得到机械臂的测试数据;
[0009] 步骤S3,基于所述测试数据,判断机械臂是否协作完成任务;若是,则执行步骤S4;若否,则执行步骤S5;
[0010] 步骤S4,对协作完成任务的机械臂进行考虑实际延时的仿真验证;
[0011] 步骤S5,将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,并引导所述没有协作完成任务的机械臂摆脱局部最小值。
[0012] 可选地,所述步骤S1包括:
[0013] 步骤S11,根据所获取的机械臂的构型和自由度以及机械臂的所有随机平面基座姿势信息,把机械臂设置为初始姿势;
[0014] 步骤S12,基于机械臂的初始姿势,计算多个目标末端执行器位置的反向运动解,生成对应数量的无碰撞复合关节节点;
[0015] 步骤S13,根据机械臂的所处状态和所述无碰撞复合关节节点,计算得到不同状态下机械臂的目标姿势,并组合不同状态下预设数量的机械臂的不同数量的目标姿势,得到训练集和测试集。
[0016] 可选地,所述步骤S13包括:
[0017] 步骤S131,当机械臂的所处状态为静态模式时,计算目标末端执行器姿势;
[0018] 步骤S132,当机械臂的所处状态为动态模式时,计算当前插值关节配置的正向运动解作为当前的动态目标姿势。
[0019] 步骤S133,组合静态模式下第一预定数量机械臂的第二预定数量的目标姿势,得到训练集;
[0020] 步骤S134,组合静态模式下第三预定数量机械臂的第四预定数量的目标姿势,以及动态模式下第五预定数量机械臂的第六预定数量的目标姿势,得到测试集。
[0021] 可选地,所述步骤S2包括:
[0022] 步骤S21,基于所述训练集,对所述目标机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂;
[0023] 步骤S22,根据所述测试集,对所述机械臂的训练数据以及所述训练后的机械臂进行测试,得到机械臂的测试数据。
[0024] 可选地,所述步骤S21包括:
[0025] 步骤S211,将所述训练集中第七预设数量的目标姿势设定为验证集,对所述目标机械臂进行验证,得到机械臂的历史观测值;
[0026] 步骤S212,基于所述训练集和所述历史观测值,对所述目标机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂;
[0027] 可选地,所述步骤S212包括:
[0028] 步骤S2121,将所述历史观测值输入到训练任务中预置的状态编码网络模型,得到状态序列数据;所述训练任务由所述训练集组成;
[0029] 步骤S2122,将所述状态序列数据输入到预置的运动规划网络模型,得到机械臂动作的输出值;
[0030] 步骤S2123,基于所述机械臂动作的输出值以及机械臂的初始姿势信息进行汇编,得到机械臂的训练数据以及训练后的机械臂。
[0031] 第二方面,本发明提供了一种多机械臂的协作装置,包括:
[0032] 编写模块,用于根据所获取的机械臂的构型信息和自由度数据以及机械臂的所有随机平面基座姿势信息,编写Bi‑RRT*算法,得到训练集和测试集;
[0033] 测试模块,用于基于所述训练集和所述测试集,对所有机械臂进行训练和测试,得到机械臂的测试数据;
[0034] 判断模块,用于基于所述测试数据,判断机械臂是否协作完成任务;若是,则执行验证模块;若否,则执行对比模块;
[0035] 验证模块,用于对协作完成任务的机械臂进行考虑实际延时的仿真验证;
[0036] 对比模块,用于将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,并引导所述没有协作完成任务的机械臂摆脱局部最小值。
[0037] 可选地,所述编写模块包括:
[0038] 初始子模块,用于根据所获取的机械臂的构型和自由度以及机械臂的所有随机平面基座姿势信息,把机械臂设置为初始姿势;
[0039] 计算子模块,用于基于机械臂的初始姿势,计算多个目标末端执行器位置的反向运动解,生成对应数量的无碰撞复合关节节点;
[0040] 组合子模块,用于根据机械臂的所处状态和所述无碰撞复合关节节点,计算得到不同状态下机械臂的目标姿势,并组合不同状态下预设数量的机械臂的不同数量的目标姿势,得到训练集和测试集。
[0041] 可选地,所述组合子模块包括:
[0042] 静态单元,用于当机械臂的所处状态为静态模式时,计算目标末端执行器姿势;
[0043] 动态单元,用于当机械臂的所处状态为动态模式时,计算当前插值关节配置的正向运动解作为当前的动态目标姿势。
[0044] 第一组合单元,用于组合静态模式下第一预定数量机械臂的第二预定数量的目标姿势,得到训练集;
[0045] 第二组合单元,用于组合静态模式下第三预定数量机械臂的第四预定数量的目标姿势,以及动态模式下第五预定数量机械臂的第六预定数量的目标姿势,得到测试集。
[0046] 可选地,所述测试模块包括:
[0047] 训练子模块,用于基于所述训练集,对所述目标机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂;
[0048] 测试子模块,用于根据所述测试集,对所述机械臂的训练数据以及所述训练后的机械臂进行测试,得到机械臂的测试数据。
[0049] 可选地,所述训练子模块包括:
[0050] 验证单元,用于将所述训练集中第七预设数量的目标姿势设定为验证集,对所述目标机械臂进行验证,得到机械臂的历史观测值;
[0051] 训练单元,用于基于所述训练集和所述历史观测值,对所述目标机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂;
[0052] 可选地,所述训练单元包括:
[0053] 序列子单元,用于将所述历史观测值输入到训练任务中预置的状态编码网络模型,得到状态序列数据;所述训练任务由所述训练集组成;
[0054] 输出子单元,用于将所述状态序列数据输入到预置的运动规划网络模型,得到机械臂动作的输出值;
[0055] 汇编子单元,用于基于所述机械臂动作的输出值以及机械臂的初始姿势信息进行汇编,得到机械臂的训练数据以及训练后的机械臂。
[0056] 从以上技术方案可以看出,本发明具有以下优点:本发明提供了一种多机械臂的协作方法,步骤S1,根据所获取的机械臂的构型信息和自由度数据以及机械臂的所有随机平面基座姿势信息,编写Bi‑RRT*算法,得到训练集和测试集,步骤S2,基于所述训练集和所述测试集,对所有机械臂进行训练和测试,得到机械臂的测试数据,步骤S3,基于所述测试数据,判断机械臂是否协作完成任务,若是,则执行步骤S4,若否,则执行步骤S5,步骤S4,对协作完成任务的机械臂进行考虑实际延时的仿真验证,步骤S5,将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,并引导所述没有协作完成任务的机械臂摆脱局部最小值,通过一种多机械臂的协作方法实现最短用时的路径规划和协作任务的无等待规划,解决了目前存在的无法通过现有的多机械臂协同控制算法实现大规模的多机械臂协同控制的技术问题,提高了多机械臂的实时协同控制的效率。

附图说明

[0057] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0058] 图1为本发明的一种多机械臂的协作方法实施例一的流程步骤图;
[0059] 图2为本发明的一种多机械臂的协作方法实施例二的流程步骤图;
[0060] 图3为本发明的一种多机械臂的协作方法中训练方法的流程步骤图;
[0061] 图4为本发明的一种多机械臂的协作装置实施例的结构框图。

具体实施方式

[0062] 本发明实施例提供了一种多机械臂的协作方法及装置,用于解决目前存在的无法通过现有的多机械臂协同控制算法实现大规模的多机械臂协同控制的技术问题。
[0063] 为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0064] 实施例一,请参阅图1,图1为本发明的一种多机械臂的协作方法实施例一的流程步骤图,包括:
[0065] 步骤S101,根据所获取的机械臂的构型信息和自由度数据以及机械臂的所有随机平面基座姿势信息,编写Bi‑RRT*算法,得到训练集和测试集;
[0066] 需要说明的是,Bi‑RRT*算法为双向智能快速随机扩展树算法,是一种渐进最优的采样规划算法。
[0067] 在本发明实施例中,根据所获取的机械臂的构型和自由度以及机械臂的所有随机平面基座姿势信息,把机械臂设置为初始姿势,基于机械臂的初始姿势,计算多个目标末端执行器位置的反向运动解,生成对应数量的无碰撞复合关节节点,根据机械臂的所处状态和所述无碰撞复合关节节点,计算得到不同状态下机械臂的目标姿势,并组合不同状态下预设数量的机械臂的不同数量的目标姿势,得到训练集和测试集。
[0068] 步骤S102,基于所述训练集和所述测试集,对所有机械臂进行训练和测试,得到机械臂的测试数据;
[0069] 在本发明实施例中,根据所述测试集对所有机械臂进行测试,得到目标机械臂,基于所述训练集,对所述目标机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂。
[0070] 步骤S103,基于所述测试数据,判断机械臂是否协作完成任务;若是,则执行步骤S104;若否,则执行步骤S105;
[0071] 步骤S104,对协作完成任务的机械臂进行考虑实际延时的仿真验证;
[0072] 步骤S105,将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,并引导所述没有协作完成任务的机械臂摆脱局部最小值。
[0073] 需要说明的是,神经网络是利用梯度进行训练的,会一直降低梯度。以现实下山例子举例,下山的坡度类似梯度,若在下山期间,遇到半山腰的洼地,此时洼地的底部坡度为零。但是并未完全下山,这种情况就是局部最小值的情况。在这种情况下,需要其他方法引导出半山腰的洼地,即引导出局部最小值,从而继续下山。
[0074] 在本发明实施例所提供的一种多机械臂的协作方法,通过步骤S101,根据所获取的机械臂的构型信息和自由度数据以及机械臂的所有随机平面基座姿势信息,编写Bi‑RRT*算法,得到训练集和测试集,步骤S102,基于所述训练集和所述测试集,对所有机械臂进行训练和测试,得到机械臂的测试数据,步骤S103,基于所述测试数据,判断机械臂是否协作完成任务,若是,则执行步骤S104,若否,则执行步骤S105,步骤S104,对协作完成任务的机械臂进行考虑实际延时的仿真验证,步骤S105,将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,并引导所述没有协作完成任务的机械臂摆脱局部最小值,通过一种多机械臂的协作方法实现最短用时的路径规划和协作任务的无等待规划,解决了目前存在的无法通过现有的多机械臂协同控制算法实现大规模的多机械臂协同控制的技术问题,提高了多机械臂的实时协同控制的效率。
[0075] 实施例二,请参阅图2,图2为本发明的一种多机械臂的协作方法的流程步骤图包括:
[0076] 步骤S201,根据所获取的机械臂的构型和自由度以及机械臂的所有随机平面基座姿势信息,把机械臂设置为初始姿势;
[0077] 步骤S202,基于机械臂的初始姿势,计算多个目标末端执行器位置的反向运动解,生成对应数量的无碰撞复合关节节点;
[0078] 在本发明实施例中,基于机械臂的初始姿势,计算多个目标末端执行器位置的反向运动解,生成对应数量的无碰撞复合关节节点。
[0079] 在具体实现中,通过对3个随机目标末端执行器位置求反向运动解并生成3个无碰撞复合关节节点。
[0080] 步骤S203,根据机械臂的所处状态和所述无碰撞复合关节节点,计算得到不同状态下机械臂的目标姿势,并组合不同状态下预设数量的机械臂的不同数量的目标姿势,得到训练集和测试集;
[0081] 在一个可选实施例中,所述步骤S203包括:
[0082] 步骤S2031,当机械臂的所处状态为静态模式时,计算目标末端执行器姿势;
[0083] 步骤S2032,当机械臂的所处状态为动态模式时,计算当前插值关节配置的正向运动解作为当前的动态目标姿势。
[0084] 步骤S2033,组合静态模式下第一预定数量机械臂的第二预定数量的目标姿势,得到训练集;
[0085] 步骤S2034,组合静态模式下第三预定数量机械臂的第四预定数量的目标姿势,以及动态模式下第五预定数量机械臂的第六预定数量的目标姿势,得到测试集。
[0086] 在本发明实施例中,通过计算得到不同状态下机械臂的目标姿势,组合不同状态下预设数量的机械臂的不同数量的目标姿势,得到训练集和测试集。
[0087] 在具体实现中,在静态模式下,使用第一无碰撞复合关节节点作为初始关节,第二无碰撞复合关节节点使用正向运动学计算目标末端执行器姿势,而不要使用第三无碰撞复合关节节点。在动态模式下,将第一无碰撞复合关节节点用作初始关节,并在情节过程中在第二无碰撞复合关节节点和第三无碰撞复合关节节点之间进行插值,计算当前插值关节的正向运动解以获得当前的动态目标姿势。
[0088] 训练集包括1,000,000个静态模式的任务,平均分配1‑4个机械臂,而测试集包含30,000个静态和动态模式的任务,平均分配1‑10个机械臂。
[0089] 步骤S204,基于所述训练集,对所述目标机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂;
[0090] 在一个可选实施例中,所述步骤S204包括:
[0091] 步骤S2041,将所述训练集中第七预设数量的目标姿势设定为验证集,对所述目标机械臂进行验证,得到机械臂的历史观测值;
[0092] 步骤S2042,将所述历史观测值输入到训练任务中预置的状态编码网络模型,得到状态序列数据;所述训练任务由所述训练集组成;
[0093] 步骤S2043,将所述状态序列数据输入到预置的运动规划网络模型,得到机械臂动作的输出值;
[0094] 步骤S21044,基于所述机械臂动作的输出值以及机械臂的初始姿势信息进行汇编,得到机械臂的训练数据以及训练后的机械臂。
[0095] 在本发明实施例中,将所述训练集中少量目标姿势设定为验证集,对所述目标机械臂进行验证,得到机械臂的历史观测值,基于所述训练集和所述历史观测值,对所述目标机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂。
[0096] 在具体实现中,在训练之前,集中的Bi‑RRT*专家会为训练任务数据集中的任务生成大量轨迹。在训练过程中,如果策略无法执行某项任务,则该任务的预先计算的Bi‑RRT*航点,将航点转换为各个关节的增量关节动作并执行。然后,将成功的专家经验以及策略自身的失败经验添加到重播缓冲区中。
[0097] Bi‑RRT*大量且密集的轨迹中的航点数量可能会超过时间步长限制,因此通过减去连续的路点来计算专家轨迹的增量关节动作使机械臂准时到达目标。提出将轨迹视为由关节空间中的线段组成的曲线,并以0.01弧度的角度公差因子对其进行减法以获得简化的轨迹。然后,从简化轨迹的下一个航路点减去手臂的当前配置来找到增量关节动作,并且所有关节上的动作幅度上限均为0.5。这样会产生一系列的增量关节动作,该动作会用足够的细节来近似Bi‑RRT*的原始轨迹,从而避免碰撞,同时仍能及时到达目标。
[0098] 将历史观测值输入到预置的状态编码网络模型,得到状态序列信息,将所述状态序列信息输入到预置的运动规划网络模型,机械臂开始运作,当训练过程中的机械臂发生冲突时或当训练时间到达预设的周期时机械臂没有完成环节训练时,停止所述机械臂的该环节训练,当机械臂结束运作时,得到机械臂动作的输出值,把机械臂设置回初始姿势,重新执行将历史观测值输入到预置的状态编码网络模型步骤,直至完成训练集中预设数量的目标姿势的任务,基于所有的机械臂动作的输出值以及机械臂的初始姿势进行汇编,得到机械臂的训练数据以及训练后的机械臂。
[0099] 步骤S205,根据所述测试集,对所述机械臂的训练数据以及所述训练后的机械臂进行测试,得到机械臂的测试数据;
[0100] 需要说明的是,测试集是模型没接触过的数据,用于检验所训练的神经网络模型能否具有良好的功能;若该神经网络模型能在测试集中取得良好的性能表现,则可认为该模型可进入应用阶段。
[0101] 在本发明实施例中,根据所述测试集对所有机械臂和机械臂的测试数据进行测试,选出良好表现性能的机械臂。
[0102] 步骤S206,基于所述测试数据,判断机械臂是否协作完成任务;若是,则执行步骤S207;若否,则执行步骤S208;
[0103] 步骤S207,对协作完成任务的机械臂进行考虑实际延时的仿真验证;
[0104] 在本发明实施例中,在仿真环境中考虑了运动计划策略推理过程的延迟,对协作完成任务的机械臂进行考虑实际延时的仿真验证,保证机械臂的动作输出值在现实世界中是正确的。
[0105] 在具体实现中,在仿真环境中考虑了运动计划策略推理过程的延迟(1ms),当运动规划器的动作在机械臂上被接收并执行时,计算这些动作的输出值已经过了向前通过的时间量,这在现实世界中是正确的,在部署模型前,进行实机测试,获取通信延迟时间,并补偿到仿真环境中。
[0106] 步骤S208,将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,并引导所述没有协作完成任务的机械臂摆脱局部最小值;
[0107] 在本发明实施例中,对于失败的任务,将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,可以在探索阶段帮助其引导并摆脱局部最小值。
[0108] 在具体实现中,为了引导初始的探索并帮助政策摆脱局部最小值,提出为失败任务提供成功的集中式Bi‑RRT*轨迹,以解决稀疏的奖励问题,同时仍然允许强化学习策略从失败的经验中学习。
[0109] 在本发明实施例所提供的一种多机械臂的协作方法,通过步骤S1,根据所获取的机械臂的构型信息和自由度数据以及机械臂的所有随机平面基座姿势信息,编写Bi‑RRT*算法,得到训练集和测试集,步骤S2,基于所述训练集和所述测试集,对所有机械臂进行训练和测试,得到机械臂的测试数据,步骤S3,基于所述测试数据,判断机械臂是否协作完成任务,若是,则执行步骤S4,若否,则执行步骤S5,步骤S4,对协作完成任务的机械臂进行考虑实际延时的仿真验证,步骤S5,将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,并引导所述没有协作完成任务的机械臂摆脱局部最小值,通过一种多机械臂的协作方法实现最短用时的路径规划和协作任务的无等待规划,解决了目前存在的无法通过现有的多机械臂协同控制算法实现大规模的多机械臂协同控制的技术问题,提高了多机械臂的实时协同控制的效率。
[0110] 请参阅图3,图3为本发明的一种多机械臂的协作方法中训练方法的流程步骤图;
[0111] 步骤S301,将训练集中预设数量的目标姿势设定为验证集,对目标机械臂进行验证,得到机械臂的历史观测值;
[0112] 步骤S302,将所述历史观测值输入到训练任务中预置的状态编码网络模型,得到状态序列数据;所述训练任务由所述训练集组成;
[0113] 步骤S303,将所述状态序列数据输入到预置的运动规划网络模型,得到机械臂动作的输出值;
[0114] 步骤S304,基于所述机械臂动作的输出值以及机械臂的初始姿势信息进行汇编,得到机械臂的训练数据以及训练后的机械臂。
[0115] 在本发明实施例中,将训练集中少量目标姿势设定为验证集,对目标机械臂进行验证,得到机械臂的历史观测值,将历史观测值输入到预置的状态编码网络模型,得到状态序列信息,将所述状态序列信息输入到预置的运动规划网络模型,机械臂开始运作,当训练过程中的机械臂发生冲突时或当训练时间到达预设的周期时机械臂没有完成环节训练时,停止所述机械臂的该环节训练,当机械臂结束运作时,得到机械臂动作的输出值,把机械臂设置回初始姿势,重新执行将历史观测值输入到预置的状态编码网络模型步骤,直至完成训练集中预设数量的目标姿势的任务,基于所有的机械臂动作的输出值以及机械臂的初始姿势进行汇编,得到机械臂的训练数据以及训练后的机械臂。
[0116] 在具体实现中,本发明采用了随时间推移而减少位置误差和旋转误差的多难度等级的测试模式。
[0117] 为了实现合作,使用团队奖励,仅当所有机械臂都达到其相应的目标末端执行器姿势时,所有机械臂的奖励+1。利用该团队的奖励并允许每个机械臂在其工作区中观察其他手臂的状态,激发机械臂并提供足够的信息以免其他机械臂被其他机械臂的目标挡住。此外,机械臂单独达到目标时会获得+0.01的奖励,而碰撞时会受到‑0.05的惩罚。
[0118] 使用长期短期记忆(LSTM)作为状态编码器,从可变长度的机械臂状态序列中提取机械臂工作空间的固定大小嵌入。在每个时间步长上,每个机械臂只能观察到其基座位置在距自己的85cm半径内的机械臂。使用LSTM状态编码器处理机械臂状态(即堆叠历史)的可变长度序列,以提取256维嵌入状态序列。该序列按其他机械臂距当前机械臂的基本距离进行降序排序,因此,机械臂的自我观察始终是序列中的最后一个元素。
[0119] 提取出状态序列之后,将其通过3个具有双曲正切激活的完全连接的层,以输出12维矢量。此向量参数化了6维高斯动作分布,可以从中采样出机械臂的增量关节动作。Q函数的结构与策略相同,但最后一层除外,后者的输出维数为1,没有激活功能。
[0120] 该测试模式由LSTM状态编码器和MLP运动计划器组成。LSTM状态编码器的输入尺寸为107,隐藏尺寸为256,为1层,是单向的,并且使用零初始隐藏状态。MLP具有3层[256,128],[128,64]和[64,6],其中6是操作维度。每个MLP层之后都有一个双曲正切激活函数。Q函数的LSTM与策略的LSTM共享相同的体系结构,其MLP的不同之处仅在于其输出维度为1,并且不具有激活功能。
[0121] 在本发明实施例所提供的一种多机械臂的协作方法中训练方法中,通过将训练集中少量目标姿势设定为验证集,对目标机械臂进行验证,得到机械臂的历史观测值,将所述历史观测值输入到训练任务中预置的状态编码网络模型,得到状态序列数据;所述训练任务由所述训练集组成,将所述状态序列数据输入到预置的运动规划网络模型,得到机械臂动作的输出值,基于所述机械臂动作的输出值以及机械臂的初始姿势信息进行汇编,得到机械臂的训练数据以及训练后的机械臂,通过一种多机械臂的协作方法实现最短用时的路径规划和协作任务的无等待规划,提高了多机械臂的实时协同控制的效率。
[0122] 请参阅图4,图4为本发明的一种多机械臂的协作装置实施例的结构框图,包括:
[0123] 编写模块401,用于根据所获取的机械臂的构型信息和自由度数据以及机械臂的所有随机平面基座姿势信息,编写Bi‑RRT*算法,得到训练集和测试集;
[0124] 测试模块402,用于基于所述训练集和所述测试集,对所有机械臂进行训练和测试,得到机械臂的测试数据;
[0125] 判断模块403,用于基于所述测试数据,判断机械臂是否协作完成任务;若是,则执行验证模块;若否,则执行对比模块;
[0126] 验证模块404,用于对协作完成任务的机械臂进行考虑实际延时的仿真验证;
[0127] 对比模块405,用于将没有协作完成任务的机械臂与协作完成任务的机械臂进行对比,并引导所述没有协作完成任务的机械臂摆脱局部最小值。
[0128] 在一个可选实施例中,所述编写模块401包括:
[0129] 初始子模块,用于根据所获取的机械臂的构型和自由度以及机械臂的所有随机平面基座姿势信息,把机械臂设置为初始姿势;
[0130] 计算子模块,用于基于机械臂的初始姿势,计算多个目标末端执行器位置的反向运动解,生成对应数量的无碰撞复合关节节点;
[0131] 组合子模块,用于根据机械臂的所处状态和所述无碰撞复合关节节点,计算得到不同状态下机械臂的目标姿势,并组合不同状态下预设数量的机械臂的不同数量的目标姿势,得到训练集和测试集。
[0132] 在一个可选实施例中,所述组合子模块包括:
[0133] 静态单元,用于当机械臂的所处状态为静态模式时,计算目标末端执行器姿势;
[0134] 动态单元,用于当机械臂的所处状态为动态模式时,计算当前插值关节配置的正向运动解作为当前的动态目标姿势。
[0135] 第一组合单元,用于组合静态模式下第一预定数量机械臂的第二预定数量的目标姿势,得到训练集;
[0136] 第二组合单元,用于组合静态模式下第三预定数量机械臂的第四预定数量的目标姿势,以及动态模式下第五预定数量机械臂的第六预定数量的目标姿势,得到测试集。
[0137] 在一个可选实施例中,所述测试模块402包括:
[0138] 训练子模块,用于基于所述训练集,对所述目标机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂;
[0139] 测试子模块,用于根据所述测试集,对所述机械臂的训练数据以及所述训练后的机械臂进行测试,得到机械臂的测试数据。
[0140] 在一个可选实施例中,所述训练子模块包括:
[0141] 验证单元,用于将所述训练集中第七预设数量的目标姿势设定为验证集,对所述目标机械臂进行验证,得到机械臂的历史观测值;
[0142] 训练单元,用于基于所述训练集和所述历史观测值,对所述目标机械臂进行训练,得到机械臂的训练数据以及训练后的机械臂;
[0143] 在一个可选实施例中,所述训练单元包括:
[0144] 序列子单元,用于将所述历史观测值输入到训练任务中预置的状态编码网络模型,得到状态序列数据;所述训练任务由所述训练集组成;
[0145] 输出子单元,用于将所述状态序列数据输入到预置的运动规划网络模型,得到机械臂动作的输出值;
[0146] 汇编子单元,用于基于所述机械臂动作的输出值以及机械臂的初始姿势信息进行汇编,得到机械臂的训练数据以及训练后的机械臂。
[0147] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0148] 在本申请所提供的几个实施例中,应该理解到,本发明所揭露的方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0149] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0150] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0151] 以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。