首页 / 专利库 / 显示技术 / 虚拟现实 / 虚拟环境 / 一种机器人集群仿真方法及装置

一种机器人集群仿真方法及装置

阅读:443发布:2020-05-14

专利汇可以提供一种机器人集群仿真方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供一种 机器人 集群仿真方法及装置,所述方法包括:同步 迭代 执行预先获得的目标仿真任务量;在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。所述装置执行上述方法。本发明实施例提供的机器人集群仿真方法及装置,能够保证机器人仿真的实时性。,下面是一种机器人集群仿真方法及装置专利的具体信息内容。

1.一种机器人集群仿真方法,其特征在于,包括:
同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;
在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;
同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
2.根据权利要求1所述的机器人集群仿真方法,其特征在于,在所述同步迭代执行预先获得的目标仿真任务量的步骤之前,所述机器人集群仿真方法,还包括:
根据所有执行方的数量,确定均分到每个执行方的、与所述机器人仿真过程中每个步骤流程相对应的仿真任务量,并分别均分到每个执行方。
3.根据权利要求1或2所述的机器人集群仿真方法,其特征在于,每个步骤流程按照执行的先后次序,依次包括:
模型预处理、碰撞检测和动学更新。
4.根据权利要求3所述的机器人集群仿真方法,其特征在于,所述模型预处理,包括:
通过机器人携带的传感器计算机器人感知的环境图像信息;计算所述机器人在虚拟环境中运行的动力。
5.根据权利要求3所述的机器人集群仿真方法,其特征在于,所述碰撞检测,包括:
根据模型预处理结果,计算机器人之间及其与虚拟环境中的实体模型的相对位置关系;
计算若机器人之间或其与实体模型发生碰撞时的碰撞点坐标,计算在所述碰撞点坐标处发生碰撞后的相互作用力,并根据所述相互作用力仿真发生碰撞后的机器人运行轨迹。
6.根据权利要求3所述的机器人集群仿真方法,其特征在于,所述动力学更新,包括:
根据模型预处理结果和碰撞检测结果,确定在当前时刻机器人的运行状态参数,并根据所述运行状态参数仿真出机器人在所述虚拟环境中的运行轨迹。
7.根据权利要求1或2所述的机器人集群仿真方法,其特征在于,所述机器人状态信息的获取,包括:
利用MPI_Allgatherv收集所述机器人状态信息。
8.一种机器人集群仿真装置,其特征在于,包括:
同步单元,用于同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;
更新单元,用于在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;
迭代单元,用于同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。

说明书全文

一种机器人集群仿真方法及装置

技术领域

[0001] 本发明涉及仿真技术领域,尤其涉及一种机器人集群仿真方法及装置。

背景技术

[0002] 机器人仿真是指通过计算机对实际的机器人进行模拟的技术,可以对机器人运动学、动学、导航制导与控制、环境感知和智能算法等进行仿真计算,模拟机器人的实际运行过程,如无人机和无人车的自动驾驶等。通过对仿真结果的处理与分析,有助于改进机器人的相关设计与算法等,因此,机器人仿真是设计开发机器人及其相关算法或技术的重要工具和有效手段。
[0003] 机器人三维动力学仿真能够将机器人置于近乎真实的虚拟世界中,对机器人的动力学行为进行仿真,目前应用范围比较广泛的机器人三维动力学仿真器有Gazebo、Webots等。首先构建机器人运动仿真模型,通过最基础的球体、圆柱体、立方体或者由CAD、Blender等建模软件构建机器人外形模型,通过编写运动或控制插件实现对机器人的运动仿真。其次,构建现实世界场景的仿真模型,如构建加油站、垃圾桶、道路的三维室外场景模型或者桌椅、墙壁、柜子等的三维室内场景模型,为机器人提供行动与交互的虚拟环境。第三是构建传感器仿真模型,如相机、深度相机激光雷达的常用传感器,提供机器人感知周围环境的能力。第四是为机器人模型添加现实世界的物理性质,基于高精度物理引擎,为机器人添加重力、阻力等、提供碰撞检测和反馈受力等仿真能力,使机器人仿真拥有高精度属性,更加逼近真实世界。最后通过渲染引擎将机器人仿真进行可视化,直观展示仿真过程,并辅以必要的可视化分析工具分析仿真结果。机器人三维动力学仿真能够逼近物理实际,使得开发的程序通过简单的修改,甚至无需修改即可应用于实体机器人的控制等,因此,可以大大降低研究成本、缩减研究周期。
[0004] 目前的机器人三维动力学仿真器仅支持在单计算机上运行,由于仿真的机器人贴近物理实际,需要底层大量的运动学、动力学、控制算法和传感器仿真等计算,随着机器人数量的增多,如规模达到成百上千,整体的仿真计算量也随之增大,不能保证仿真的实时性。

发明内容

[0005] 针对现有技术存在的问题,本发明实施例提供一种机器人集群仿真方法及装置。
[0006] 本发明实施例提供一种机器人集群仿真方法,包括:
[0007] 同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;
[0008] 在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;
[0009] 同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
[0010] 其中,在所述同步迭代执行预先获得的目标仿真任务量的步骤之前,所述机器人集群仿真方法,还包括:
[0011] 根据所有执行方的数量,确定均分到每个执行方的、与所述机器人仿真过程中每个步骤流程相对应的仿真任务量,并分别均分到每个执行方。
[0012] 其中,每个步骤流程按照执行的先后次序,依次包括:
[0013] 模型预处理、碰撞检测和动力学更新。
[0014] 其中,所述模型预处理,包括:
[0015] 通过机器人携带的传感器计算机器人感知的环境图像信息;计算所述机器人在虚拟环境中运行的动力。
[0016] 其中,所述碰撞检测,包括:
[0017] 根据模型预处理结果,计算机器人之间及其与虚拟环境中的实体模型的相对位置关系;
[0018] 计算若机器人之间或其与实体模型发生碰撞时的碰撞点坐标,计算在所述碰撞点坐标处发生碰撞后的相互作用力,并根据所述相互作用力仿真发生碰撞后的机器人运行轨迹。
[0019] 其中,所述动力学更新,包括:
[0020] 根据模型预处理结果和碰撞检测结果,确定在当前时刻机器人的运行状态参数,并根据所述运行状态参数仿真出机器人在所述虚拟环境中的运行轨迹。
[0021] 其中,所述机器人状态信息的获取,包括:
[0022] 利用MPI_Allgatherv收集所述机器人状态信息。
[0023] 本发明实施例提供一种机器人集群仿真装置,包括:
[0024] 同步单元,用于同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;
[0025] 更新单元,用于在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;
[0026] 迭代单元,用于同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
[0027] 本发明实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,
[0028] 所述处理器执行所述程序时实现如下方法步骤:
[0029] 同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;
[0030] 在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;
[0031] 同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
[0032] 本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
[0033] 同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;
[0034] 在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;
[0035] 同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
[0036] 本发明实施例提供的机器人集群仿真方法及装置,通过多个终端共同并行同步迭代执行机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,并更新当前的机器人状态信息,能够保证机器人仿真的实时性。附图说明
[0037] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038] 图1为本发明机器人集群仿真方法实施例流程图
[0039] 图2为本发明另一实施例机器人集群多机并行仿真示意图;
[0040] 图3为本发明另一实施例机器人集群三维动力学并行可扩展仿真流程图;
[0041] 图4为本发明实施例利用MPI并行技术的机器人集群三维动力学并行可扩展仿真示意图;
[0042] 图5为本发明机器人集群仿真装置实施例结构示意图;
[0043] 图6为本发明实施例提供的电子设备实体结构示意图。

具体实施方式

[0044] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045] 图1为本发明机器人集群仿真方法实施例流程图,如图1所示,本发明实施例提供的一种机器人集群仿真方法,包括以下步骤:
[0046] S101:同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量。
[0047] 具体的,同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量。执行该方法步骤的可以是计算机设备,具体可以是终端。每个步骤流程按照执行的先后次序,可以依次包括:模型预处理、碰撞检测和动力学更新。在该步骤之前,该方法还可以包括:
[0048] 根据所有执行方的数量,确定均分到每个执行方的、与所述机器人仿真过程中每个步骤流程相对应的仿真任务量,并分别均分到每个执行方。所有执行方可以理解为共同执行仿真任务量的所有终端。
[0049] 为了更好地分配本地的仿真任务量,进一步地,可以均分到本地的仿真任务量。图2为本发明另一实施例机器人集群多机并行仿真示意图,如图2所示,以三个终端为例,从左到右分别记为终端1、终端2和终端3,如果模型预处理对应的仿真任务量为30、碰撞检测对应的仿真任务量为30、动力学更新对应的仿真任务量为30,则与终端1对应的对目标仿真任务量为模型预处理对应仿真任务量的1/3(即10)、碰撞检测对应仿真任务量的1/3(即10)和动力学更新对应仿真任务量的1/3(即10)(对应图2左侧终端中、由实线框表示的机器人组
1)。
[0050] 与终端2对应的目标仿真任务量为模型预处理对应仿真任务量的1/3(不同于终端1中的模型预处理对应仿真任务量)、碰撞检测对应仿真任务量的1/3(不同于终端1中的碰撞检测对应仿真任务量)和动力学更新对应仿真任务量的1/3(不同于终端1中的动力学更新对应仿真任务量)。上述对应图2中间终端中、由实线框表示的机器人组2。
[0051] 与终端3对应的目标仿真任务量为模型预处理对应仿真任务量的1/3(即剩余的模型预处理对应仿真任务量)、碰撞检测对应仿真任务量的1/3(即剩余的碰撞检测对应仿真任务量)和动力学更新对应仿真任务量的1/3(即剩余的动力学更新对应仿真任务量)。上述对应图2右侧终端中、由实线框表示的机器人组3。
[0052] 本发明实施例直观地将机器人集群按照计算机数量(对应上述终端)进行分组,每台计算机负责主要计算其中一个机器人组中的机器人。如图2所示,以3台计算机为例。首先,每台计算机都加载相同的虚拟场景,保证机器人集群活动所在的虚拟场景一致;然后加载机器人集群,尽管每台计算机主要负责计算其中一个机器人组中的机器人,但是仍然要加载全部的机器人模型,这是为了使机器人在虚拟场景中不仅能够感知到其所在机器人组中的机器人,也能够感知到另外机器人组中的机器人;不在本地计算机上仿真计算的机器人可以看作虚拟场景的一部分,图2中用虚线框表示;在本地计算机上仿真计算的机器人组内部之间以及机器人与虚拟场景(包含不在本地计算机上仿真计算的机器人)要进行碰撞检测和动力学更新;每台计算机上都有不进行仿真计算的其余几个机器人组,该组中的机器人每一时刻的位姿等状态信息由其他计算机的仿真计算结果进行赋予。这样在每台计算机的仿真场景中,机器人集群在进行同样的活动,但是将原来单机的仿真任务分配到了多台计算机上,实现了多机并行仿真,并且多机的数量可以扩展。
[0053] 图3为本发明另一实施例机器人集群三维动力学并行可扩展仿真流程图,如图3所示,对同步迭代执行预先获得的目标仿真任务量说明如下:在终端1中第一次迭代(对应迭代步1)执行预先获得的目标仿真任务量,即机器人组1;在终端2中第一次迭代(对应迭代步1)执行预先获得的目标仿真任务量,即机器人组2;在终端3中第一次迭代(对应迭代步1)执行预先获得的目标仿真任务量,即机器人组3。上述终端1、终端2和终端3都是第一次迭代(对应同步迭代)。
[0054] 以终端1为例,第一次迭代执行机器人组1中模型预处理的一部分仿真任务量;同理,终端2第一次迭代执行机器人组2中模型预处理的一部分仿真任务量、终端3第一次迭代执行机器人组3中模型预处理的一部分仿真任务量。在上述三个终端都执行完第一次迭代之后,终端1再第二次迭代执行机器人组1中模型预处理的另一部分仿真任务量、终端2和终端3不再赘述。然后,再依次执行碰撞检测和动力学更新分别对应的仿真任务量。
[0055] 对模型预处理、碰撞检测和动力学更新分别作如下说明:
[0056] 模型预处理:
[0057] 通过机器人携带的传感器计算机器人感知的环境图像信息;计算所述机器人在所述虚拟环境中运行的动力。
[0058] 具体包括:进入时间步迭代后,首先最重要的一步就是模型预处理,这里包括机器人携带的传感器仿真计算,表现当下时刻机器人对周围环境的感知情况,如机器人携带相机,则通过相机传感器的仿真计算出机器人视所观察到的图像信息,通过可视化呈现出机器人视角所“看”到的景象,同时图像信息还可以为感知算法等提供基础数据。除了传感器仿真计算,还有非常重要的控制仿真计算,关乎机器人在虚拟环境中的行动能力,这部分仿真计算将机器人收到的控制指令通过控制模型解算为机器人活动部件在当下时刻所受或所应加载的力和力矩,如四轮小车,控制其以一定速度前进,会解算为每个轮子的绕轴的力矩,作为小车完成前进动作的动力。
[0059] 碰撞检测:
[0060] 根据模型预处理结果,计算机器人之间及其与虚拟环境中的实体模型的相对位置关系;计算若机器人之间或其与实体模型发生碰撞时的碰撞点坐标,计算在所述碰撞点坐标处发生碰撞后的相互作用力,并根据所述相互作用力仿真发生碰撞后的机器人运行轨迹。
[0061] 具体包括:对模型间的相对位置关系进行计算,当检测到实体间可能发生碰撞时,则返回发生碰撞的点的坐标。然后计算碰撞后产生的相互作用力。通过碰撞检测与处理,可以避免出现渗入、穿透等违背客观物理规律的仿真现象,从而在一定程度上保证了仿真的真实性。如小车机器人在地面上行动,车轮与地面就要进行碰撞检测,检测到接触点,小车受向下的重力,地面反过来要提供小车向上的支撑力,使得小车时刻能够在地面上行动,避免小车穿透地面。碰撞检测要将仿真中的所有模型和场景进行两两成对检测,模型数量越多,仿真计算量越大。
[0062] 动力学更新:
[0063] 根据模型预处理结果和碰撞检测结果,确定在当前时刻机器人的运行状态参数,并根据所述运行状态参数仿真出机器人在所述虚拟环境中的运行轨迹。
[0064] 在模型预处理和碰撞检测的基础上,计算出机器人模型各部分的合力和合力矩,根据上一时刻机器人的位置、速度等状态和仿真时间步长计算出当前时刻机器人的位置、速度等状态。这样通过时间步迭代计算仿真出机器人在虚拟环境中的连续行动,如小车在地面上的行动,无人机在空中的飞行等。为了使机器人的动力学仿真更贴近物理实际,仿真时间步长是ms量级,为实时仿真带来考验。
[0065] S102:在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应所有仿真任务量,所有执行方包括本地执行方和其他执行方。
[0066] 具体的,在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应所有仿真任务量,所有执行方包括本地执行方和其他执行方。机器人状态信息可以包括位姿等状态,不作具体限定。参照上述举例,以终端1为例,与其对应的、第一次迭代的机器人状态信息为机器人状态信息A11、与终端2对应的、第一次迭代的机器人状态信息为机器人状态信息B11、与终端3对应的、第一次迭代的机器人状态信息为机器人状态信息C11;发送A11至终端2和终端3、接收终端2发送的B11和终端3发送的C11,并根据B11和C11更新A11。终端2和终端3可以参照终端1的上述说明,不再赘述。
[0067] 需要说明的是,对发送和接收的先后顺序不作具体限定,例如,如果终端1先获取到A11、则终端1先发送、后接收;如果终端3先获取到C11、终端1第二个获取到A11,则先接收终端3发送的C11、再发送A11至终端2和终端3、再接收终端2发送的B11。
[0068] 然后,与终端1对应的、第二次迭代的机器人状态信息为机器人状态信息A21;与终端2对应的、第二次迭代的机器人状态信息为机器人状态信息B21;与终端3对应的、第二次迭代的机器人状态信息为机器人状态信息C21,参照上述举例,以终端1为例,根据B21和C21更新A21,并记录更新后的A11和更新后的A21,以此类推,直到完成动力学更新的全部。其他终端不再赘述。
[0069] S103:同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
[0070] 具体的,同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。预设迭代终止条件可以是迭代次数或者累计完成仿真任务量等,不作具体限定。
[0071] 如图3所示,机器人集群三维动力学并行可扩展仿真流程步骤,其是在机器人三维动力学仿真主要流程步骤基础上进行了并行可扩展改造。由一台计算机发出开始仿真指令(对应仿真起始命令),所有参与仿真的计算机启动仿真进程,进行参数解析和模型加载,加载虚拟场景和机器人集群各模型;然后分别进入时间步迭代循环,模型预处理模仅计算本机负责计算的机器人组,包括传感器仿真、控制模型计算等,本机不负责计算的机器人组不进行计算,这样将该模块的计算任务分到了多机上并行执行;碰撞检测模块,如上所述,将本机不负责计算的机器人看作虚拟场景的一部分,这样,本机不负责计算的机器人与虚拟场景本身便不需要进行碰撞检测计算,降低了单机的碰撞检测计算量;动力学更新模块同理,只对本机负责计算的机器人进行动力学更新,计算得到新的位姿、速度等状态信息;在每一时间步的最后增加“通信、同步和状态赋值”模块,在每个时间步的最后进行通信,将本计算机计算的机器人组的状态信息传递给其他计算机,其他计算机收到信息后对自己本机上的对应机器人组进行状态赋值,然后还有同步,保证每台计算机上仿真计算同步地进行下去,同时仿真同一时间步;最后有一台计算机判断迭代结束后便结束仿真。
[0072] 本发明实施例提供的机器人集群仿真方法,通过多个终端共同并行同步迭代执行机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,并更新当前的机器人状态信息,能够保证机器人仿真的实时性。
[0073] 在上述实施例的基础上,在所述同步迭代执行预先获得的目标仿真任务量的步骤之前,所述机器人集群仿真方法,还包括:
[0074] 具体的,根据所有执行方的数量,确定均分到每个执行方的、与所述机器人仿真过程中每个步骤流程相对应的仿真任务量,并分别分配到每个执行方。可参照上述说明,不再赘述。
[0075] 本发明实施例提供的机器人集群仿真方法,通过预先平均分配到每个终端各自对应的仿真任务量,保证每个终端可以并行进行机器人仿真,从而进一步保证机器人仿真的实时性。
[0076] 在上述实施例的基础上,每个步骤流程按照执行的先后次序,依次包括:
[0077] 具体的,模型预处理、碰撞检测和动力学更新。可参照上述说明,不再赘述。
[0078] 本发明实施例提供的机器人集群仿真方法,通过依次有序并行执行模型预处理、碰撞检测和动力学更新,优化了机器人仿真过程。
[0079] 在上述实施例的基础上,所述模型预处理,包括:
[0080] 具体的,通过机器人携带的传感器计算机器人感知的环境图像信息。可参照上述说明,不再赘述。
[0081] 具体的,计算所述机器人在所述虚拟环境中运行的动力。可参照上述说明,不再赘述。
[0082] 本发明实施例提供的机器人集群仿真方法,通过模型预处理,进一步优化了机器人仿真过程。
[0083] 在上述实施例的基础上,所述碰撞检测,包括:
[0084] 具体的,根据模型预处理结果,计算机器人之间及其与虚拟环境中的实体模型的相对位置关系。可参照上述说明,不再赘述。
[0085] 具体的,计算若机器人之间或其与实体模型发生碰撞时的碰撞点坐标,计算在所述碰撞点坐标处发生碰撞后的相互作用力,并根据所述相互作用力仿真发生碰撞后的机器人运行轨迹。可参照上述说明,不再赘述。
[0086] 本发明实施例提供的机器人集群仿真方法,通过碰撞检测,进一步优化了机器人仿真过程。
[0087] 在上述实施例的基础上,所述动力学更新,包括:
[0088] 具体的,根据模型预处理结果和碰撞检测结果,确定在当前时刻机器人的运行状态参数,并根据所述运行状态参数仿真出机器人在所述虚拟环境中的运行轨迹。可参照上述说明,不再赘述。
[0089] 本发明实施例提供的机器人集群仿真方法,通过动力学更新,进一步优化了机器人仿真过程。
[0090] 在上述实施例的基础上,所述机器人状态信息的获取,包括:
[0091] 利用MPI_Allgatherv收集所述机器人状态信息。
[0092] 具体的,利用MPI_Allgatherv收集所述机器人状态信息。通过MPI_Allgatherv对不同长度的数据块进行收集,等价于依次以Comm中的每个进程为根进程,并调用。图4为本发明实施例利用MPI并行技术的机器人集群三维动力学并行可扩展仿真示意图,如图4所示,利用MPI run命令启动各计算机上的仿真进程,开始仿真;利用MPI_Allgatherv进行机器人状态信息收集,然后再赋给本机不负责计算的机器人,令其在本机上同样能够行动;MPI_Allgatherv本身具有同步功能,保证仿真计算的同步性。所述仿真起始命令的触发,可以包括:
[0093] 利用MPI run命令触发所述仿真起始命令。MPI run是MPI程序快速执行命令,运行前不必运行mpdboot开启守护进程,其中,mpdboot是启动集群mpd守护进程,在运行MPI程序前可以开启每个节点上的mpd守护进程。
[0094] 本发明实施例提供的机器人集群仿真方法,能够保证及时、有效地收集到机器人状态信息,从而实现机器人的实时仿真。
[0095] 该方法还可以包括如下实施例,所述同步迭代执行预先获得的目标仿真任务量,包括:
[0096] 具体的,若检测到仿真起始命令,则同步迭代执行预先获得的目标仿真任务量。即可以将仿真起始命令理解为同步信息,作用是使得各终端能够同步迭代执行预先获得的目标仿真任务量。
[0097] 本发明实施例提供的机器人集群仿真方法,能够保证迭代执行预先获得的目标仿真任务量的同步性。
[0098] 本发明实施例提供的机器人集群仿真方法,进一步能够保证迭代执行预先获得的目标仿真任务量的同步性。
[0099] 在上述实施例的基础上,在所述分别均分到每个执行方的步骤之后、且在所述同步迭代执行预先获得的目标仿真任务量的步骤之前,所述机器人集群仿真方法,还包括:
[0100] 具体的,进行参数解析和模型加载。参照图3,对参数解析和模型加载具体说明如下:
[0101] 对仿真任务各参数进行解析,将虚拟场景加载到仿真环境中,构建机器人活动的虚拟世界;将仿真任务中的各机器人加载到仿真环境中,包括机器人的几何外形结构关节等,同时加载机器人的虚拟传感器、行动控制算法、智能算法等。
[0102] 本发明实施例提供的机器人集群仿真方法,通过先进行参数解析和模型加载,完成了在并行仿真之前的准备工作,从而保证并行仿真的正常进行,进一步保证机器人仿真的实时性。
[0103] 本发明实施例具有如下有益效果:
[0104] 1、将原来单机上进行的机器人三维动力学仿真任务合理地分配到多台计算机上并行执行,在同等规模机器人集群仿真下,能够通过多机并行手段加速仿真执行效率,进而保证仿真实时性,甚至可以超实时仿真。
[0105] 2、仿真的多机数量可以扩展,有助于提高机器人集群的仿真规模,为相关计算研究提供有力支撑。
[0106] 图5为本发明机器人集群仿真装置实施例结构示意图,如图5所示,本发明实施例提供了一种机器人集群仿真装置,包括同步单元501、更新单元502和迭代单元503,其中:
[0107] 同步单元501用于同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;更新单元502用于在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;迭代单元503用于同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
[0108] 具体的,同步单元501用于同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;更新单元502用于在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;迭代单元503用于同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
[0109] 本发明实施例提供的机器人集群仿真装置,通过多个终端共同并行同步迭代执行机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,并更新当前的机器人状态信息,能够保证机器人仿真的实时性。
[0110] 本发明实施例提供的机器人集群仿真装置具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
[0111] 图6为本发明实施例提供的电子设备实体结构示意图,如图6所示,所述电子设备包括:处理器(processor)601、存储器(memory)602和总线603;
[0112] 其中,所述处理器601、存储器602通过总线603完成相互间的通信;
[0113] 所述处理器601用于调用所述存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
[0114] 本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
[0115] 本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:同步迭代执行预先获得的目标仿真任务量;其中,所述目标仿真任务量是与机器人仿真过程中每个步骤流程相对应的、分配到本地的仿真任务量;在每完成一次迭代周期后获取当前的机器人状态信息,发送所述机器人状态信息至其他参与同步迭代执行预先获得的目标仿真任务量的执行方,并根据接收到的、由其他执行方发送的所有机器人状态信息,更新当前的机器人状态信息;其中,所有执行方共同并行同步迭代执行所述机器人仿真过程中与所有步骤流程相对应的所有仿真任务量,所有执行方包括本地执行方和其他执行方;同步执行下一次迭代周期,以继续同步迭代执行预先获得的目标仿真任务量,直到满足预设迭代终止条件。
[0116] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0117] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0118] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0119] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈