掌桥专利:专业的专利平台
掌桥专利
首页

仿真方法、装置、存储介质和处理器

文献发布时间:2023-06-19 12:00:51


仿真方法、装置、存储介质和处理器

技术领域

本发明涉及机器人技术领域,具体而言,涉及一种仿真方法、装置、存储介质和处理器。

背景技术

采用DigitalTwin数字孪生技术的智能建筑,可通过传感器收集实体建筑的实时数据,对建筑的虚拟原型和建筑工艺模拟仿真,实现智能建筑制造流程排期的数字化展示。建筑机器人为智能建筑的施工工程中的主体,工程师和设计人员根据设计意愿和要求设定作业数据,建筑机器人根据既定的作业数据完成建筑中的每个工序以实现智能建筑。建筑机器人还可以对真实数据进行全程模拟仿真,对模拟结果生成仿真报告,分析当前真实数据仿真的缺陷,计算出能量消耗、作业面积、作业时间等数据,减少作业中的碰撞以及作业时能量的消耗。

每一款建筑机器人具有设定的作业工种,建筑机器人可以按照自己的作业工种完成自己的作业任务。智能建筑的施工过程通常由多段复杂的工序组成,一款建筑机器人仅能完成其中的一段工序,因此需要多款不同工种的建筑机器人相互配合完成智能建筑的施工。当多款不同工种的建筑机器人配合完成多段复杂的工序时,需要合理的安排建筑机器人模拟真实的建筑机器人的作业流程,按照作业数据还原建筑机器人的作业行为,使得不同工种的建筑机器人保持作业节奏和时间一致。然而由于施工工序的复杂性,难以对不同工种的建筑机器人同时进行仿真,进而难以实现同一场景下的作业事件编排。

针对上述现有技术中难以对同一场景下不同工种的建筑机器人同时进行仿真的技术问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种仿真方法、装置、存储介质和处理器,以至少解决现有技术中难以对同一场景下不同工种的建筑机器人同时进行仿真的技术问题。

根据本发明实施例的一个方面,提供了一种仿真方法,包括:获取多个作业数据,并根据配置参数为每个所述作业数据创建一个对应的仿真机器人;根据每个所述作业数据,生成与每个所述作业数据对应的仿真机器人的事件列表,其中,所述事件列表包括:顺序事件列表和触发事件列表;所述仿真机器人被配置为根据所述顺序事件列表依次执行顺序事件;以及被配置为监听其他仿真机器人发送的触发信号,所述触发信号用于触发所述仿真机器人执行所述触发事件列表中的触发事件。

进一步地,在根据配置参数为每个所述作业数据创建一个对应的仿真机器人之前,方法还包括:对所述作业数据进行数据校验;在校验通过的情况下,将所述作业数据进行结构化处理,并进入根据配置参数为每个所述作业数据创建一个对应的仿真机器人的步骤,其中,所述结构化处理用于将所述作业数据转换为仿真机器人的部件的运动数据,并将所述运动数据与对应的部件进行绑定。

进一步地,对作业数据进行数据校验包括如下至少一项:对作业数据进行格式校验,其中,在作业数据为预设格式的情况下,确定作业数据通过格式校验;对作业数据进行特征校验,其中,在作业数据包含预设的特征数据的情况下,确定作业数据通过特征校验;以及对作业数据进行范围校验,其中,在作业数据处于预设范围的情况下,确定作业数据通过范围校验。

进一步地,获取多个作业数据,并根据配置参数为每个所述作业数据创建一个对应的仿真机器人,包括:根据待仿真的目标场景选择创建区域,并进入所目标场景;查找目标场景下的作业数据;根据所述配置参数创建与目标场景下的作业数据对应的第一仿真机器人。

进一步地,事件列表包括:自动导航数据、仿真动作数据和作业面数据,其中,自动导航数据包括:移动数据和当前面向数据,仿真动作数据用于指示部件的运动数据,作业面数据用于指示待仿真的作业面的属性信息,根据每个所述作业数据,生成与每个所述作业数据对应的仿真机器人的事件列表,包括:解析作业数据,生成具有执行顺序的事件;将事件按照执行顺序编排为事件列表。

进一步地,移动数据包括:起始位置坐标、结束位置坐标以及移动速度;当前面向数据包括:起始旋转角度、结束旋转角度以及旋转速度;仿真动作数据包括多个部件的开始运动位置、结束运动位置、部件的运动路径以及运动动画。

进一步地,所述仿真机器人被配置为根据所述顺序事件列表依次执行顺序事件,包括:控制所述仿真机器人获取所述事件列表中,用于表示触发其他机器人动作的调用事件,其中,所述调用事件中包括:事件编号、事件接收对象标识和事件数据;控制所述仿真机器人根据所述事件接收对象标识确定待触发的仿真机器人;控制所述仿真机器人向所述待触发的仿真机器人发送携带有所述事件编号和所述事件数据的触发信号。

根据本发明实施例的另一方面,还提供了一种仿真装置,包括:获取模块,用于获取多个作业数据,并根据配置参数为每个所述作业数据创建一个对应的仿真机器人;生成模块,用于根据每个所述作业数据,生成与每个所述作业数据对应的仿真机器人的事件列表,其中,所述事件列表包括:顺序事件列表和触发事件列表;第一控制模块,用于所述仿真机器人被配置为根据所述顺序事件列表依次执行顺序事件;以及第二控制模块,用于被配置为监听其他仿真机器人发送的触发信号,所述触发信号用于触发所述仿真机器人执行所述触发事件列表中的触发事件。

根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的仿真方法。

根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项仿真方法。

在本发明实施例中,取多个作业数据,并根据配置参数为每个所述作业数据创建一个对应的仿真机器人;根据每个所述作业数据,生成与每个所述作业数据对应的仿真机器人的事件列表,其中,所述事件列表包括:顺序事件列表和触发事件列表;所述仿真机器人被配置为根据所述顺序事件列表依次执行顺序事件;以及被配置为监听其他仿真机器人发送的触发信号,所述触发信号用于触发所述仿真机器人执行所述触发事件列表中的触发事件。通过在仿真场景下创建与实际场景的机器人一一对应的多个仿真机器人,并设置与实际场景相一致的顺序事件列表和触发事件列表,多个仿真机器人可根据用户设定的触发事件列表相互通信配合联动作业,实现了对同一场景下多个机器人联动作业的仿真,解决了现有技术中难以对同一场景下不同工种的建筑机器人同时进行仿真的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种仿真方法的流程图;

图2是根据本发明实施例的一种可选的建筑仿真机器人执行顺序事件列表的事件执行示意图;

图3是根据本发明实施例的一种可选的触发事件列表的事件示意图;

图4是根据本发明实施例的一种可选的仿真方法的流程图;

图5是根据本发明实施例的作业数据结构化处理并生成事件列表的示意图;

图6是根据本发明实施例的可选的对json格式作业数据进行数据校验的流程图;

图7是根据本发明实施例的一种仿真装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种仿真方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的仿真方法的流程图,如图1所示,该方法包括如下步骤:

步骤S101,获取多个作业数据,并根据配置参数为每个所述作业数据创建一个对应的仿真机器人。

上述作业数据用于表示机器人需要完成的实际事件的作业内容,机器人根据作业数据执行相应的作业动作以完成实际事件的作业内容的执行。例如,在建筑施工的场景中,不同工种的机器人的作业数据不同,墙地砖填缝机器人的作业数据可以包括墙体高度、墙缝宽度、机器人动作数据等,供砖机器人的作业数据可以包括砖块的长宽高数据、搬砖路径的坐标数据等。在一种可选的实施例中,上述作业数据可设置为json格式。

上述仿真机器人为在仿真场景下配置的,与执行实际事件的作业内容的机器人相对应的虚拟机器人。在实际场景中,机器人根据不同的作业内容,具有不同的作业数据,在仿真场景中,仿真机器人与实际事件的机器人一一对应,仿真机器人具有与实际事件的机器人的作业数据相一致的作业数据。

需要说明的时,仿真场景中可能包含多个仿真机器人,每个仿真机器人与作业数据具有预设的对应关系,即在仿真场景中仿真机器具有与其工种对应的作业数据,不同的仿真机器人具有不同的作业数据。

在一种可选的实施例中,在仿真场景中,通过配置仿真机器人编号(仿真机器人的仿真机器人编号与对应的实际场景的机器人编号相同)、仿真场景编号、仿真作业编号,创建出与实际事件的机器人和作业数据相对应的仿真场景,仿真场景中包含多个仿真机器人以及对应的作业数据,每个仿真机器人根据作业数据进行排程和作业的仿真。

步骤S102,根据每个所述作业数据,生成与每个所述作业数据对应的仿真机器人的事件列表,其中,所述事件列表包括:顺序事件列表和触发事件列表。

上述事件列表用于表示根据机器人在某一时间内所执行的一个或者多个动作而编排成的列表,机器人可根据事件列表中的内容相应的执行一个或者多个动作。事件列表中某一时间内的一个或者多个动作根据实际场景的机器人的作业数据确定,例如,在建筑施工的场景中,墙地砖填缝机器人在进行墙体的填缝时,根据墙体的高度的不同,墙地砖填缝机器人可能先执行升高动作,再执行填缝动作,则该事件帧包括升高和填缝两个动作。

事件列表包含完成至少一个实际事件的作业内容的多个事件,例如,在建筑施工的场景中,墙地砖填缝机器人的事件列表可能包含寻路移动(使得墙地砖填缝机器人到达需要进行施工的区域),调节高度(使得墙地砖填缝机器人的高度符合填缝区域的要求)、机器臂执行填缝动作,机器人通过执行事件列表中的多个事件帧,完成相应的作业内容。事件列表根据实际事件的作业内容对应的作业数据确定,在对应的仿真场景中,仿真机器人根据事件列表中的事件可进行相应动作的执行,实现对实际场景中作业内容的仿真。

上述顺序事件列表为机器人按照时间顺序执行顺序事件列表中的多个事件,直到顺序事件列表中所有事件都执行完,机器人停止一切动作(例如,机器人停止在当前站点不运动)。

上述触发事件列表为机器人并不会主动执行触发事件列表中的事件,仅当机器人接收到外部发送的触发事件列表中的事件时,才会相应的执行接收到的事件。触发事件列表中的事件可以包括事件编号、事件接收的对象、接收触发事件的机器人部件、开始运动的位置、结束运动的位置等。

需要说明的是,一个机器人的完整的作业内容,可以同时对应顺序事件列表和触发事件列表,使得机器人在作业过程中,一部分作业内容的执行动作根据顺序事件列表中的事件执行,一部分作业内容的执行动作根据触发事件列表中的事件执行。每个机器人具有与其对应的事件列表,可以仅包括顺序事件列表或者触发事件列表,也可以同时具有顺序事件列表和触发事件列表。

步骤S103,所述仿真机器人被配置为根据所述顺序事件列表依次执行顺序事件;以及。

仿真机器人可按照顺序事件列表中的事件依次执行事件中的动作。例如,在建筑施工的仿真中,仿真机器人可以为建筑仿真机器人,建筑仿真机器人按照顺序事件列表中的事件顺序依次执行作业动作。图2为一种可选的建筑仿真机器人执行顺序事件列表的事件执行示意图,如图2所示,在仿真场景创建之后,获取供砖机器人的作业数据,在仿真场景中创建与供砖机器人一一对应的仿真机器人,其作业数据可以包括AGV(Automated guidedvehicle,自动导航小车)数据(包括供砖机器人寻路的起始站点坐标、结束站点坐标以及移动速度)、供砖机器人旋转动作数据(包括旋转的开始角度、结束角度和旋转速度)、供砖机器人的部件运动数据(包括部件运动起始位置、部件运动结束位置、部件在模型中的路径名称以及部件旋转开始角度等)等。

根据作业数据生成顺序事件列表,具体的,根据供砖机器人寻路的起始站点坐标、结束站点坐标以及移动速度生成AGV寻路事件21,根据旋转的开始角度、结束角度和旋转速度生成旋转事件22。由于一个作业工序可能需要多个部件配合运动,供砖机器人的部件运动数据包括多个部件的运动数据,顺序事件列表可以包含多个运动事件,以使供砖机器人执行一系列的动作。在图2中,运动事件23包含部件A1和部件A2的运动,则根据部件A1的运动起始位置、部件运动结束位置以及A1的旋转开始角度,部件A2的运动起始位置、部件运动结束位置以及A1的旋转开始角度确定出包含部件A1和部件A2的运动事件23。供砖机器人的作业内容中可能包含多个工序,如图2所示,事件列表中还包括运动事件24和运动事件25,其中,运动事件24包括部件K1和部件K2的运动,可根据部件K1和部件K2的运动起始位置、部件运动结束位置以及旋转开始角度确定运动事件24的多个执行动作;运动事件25包括部件N1和部件N2的运动,运动事件25的确定方法与运动事件23相同。

在确定了顺序事件列表后,控制上述仿真机器人按照顺序事件列表中的事件帧依次执行事件帧中的动作,如图2所示,仿真机器人依次执行AGV寻路事件21、旋转事件22、运动事件23、运动事件24和运动事件25,实现对供砖机器人在实际场景中对供砖工序的仿真。

步骤S104,被配置为监听其他仿真机器人发送的触发信号,所述触发信号用于触发所述仿真机器人执行所述触发事件列表中的触发事件。

其他仿真机器人对应于实际场景中不同工种的其他机器人,仿真机器人可根据其他仿真机器人的触发执行相应的动作。

具体的,其他仿真机器人向当前仿真机器人发送触发信号,以触发当前仿真机器人执行触发事件列表的事件,当前仿真机器根据触发事件列表的事件中包含的部件以及运动信息执行相应的触发动作。图3为一种可选的触发事件列表30的示意图,如图3所示,在建筑施工的场景中,其他仿真机器人可以为砌砖仿真机器人,当前仿真机器人可以为供砖仿真机器人,供砖仿真机器人和砌砖仿真机器人各自添加了触发事件列表,其中,触发事件列表中包含供砖仿真机器人开始工作事件31、砌砖仿真机器人移动至下一路径点事件32、砌砖仿真机器人运砖事件33、供砖仿真机器人开始工作事件34。每个事件均包含事件编号EFOrder、事件接收的对象EFGetObj(即接收事件的第二仿真机器人)、接收触发事件的机器人部件EFPartsId、开始运动的位置StartPos、结束运动的位置EndPos等。例如,供砖仿真机器人开始工作事件31的内容包括供砖仿真机器人执行向砌砖仿真机器人送转的部件动作,砌砖仿真机器人检测到触发事件列表后开始监听,当砌砖仿真机器人砌完一块砖时,触发供砖仿真机器人接收触发事件列表中的供砖仿真机器人开始工作事件31,供砖仿真机器人接收该事件后,执行向砌砖仿真机器人送下一块砖的动作。

在一种可选的实施中,图4为一种可选的仿真方法的流程图,在建筑施工的仿真的实施例中,第一仿真机器人为仿真机器人A,第二仿真机器人为仿真机器人B,如图4所示,仿真机器人A和仿真机器人B各自添加了顺序事件列表和触发事件列表后,各自按照顺序事件列表中的事件执行动作并开始监听触发事件,具体包括如下步骤:

步骤S401,仿真机器人A开始监听触发事件。

步骤S402,仿真机器人A依次自己顺序事件列表中的事件。

步骤S403,仿真机器人B开始监听触发事件。

步骤S404,仿真机器人B依次执行自己的顺序事件列表中的事件。

步骤S401和步骤S402为仿真机器人A同时执行的步骤,步骤S403和步骤S404为仿真机器人B同时执行的步骤。

步骤S405,仿真机器人A在执行自己顺序事件列表中的事件的过程中,向仿真机器人B发起触发事件a。

步骤S406,仿真机器人A在发起触发事件a后,仍继续执行自己顺序事件列表中的事件。

步骤S407,仿真机器人B在监听到仿真机器人A发起的触发事件a后,将当前作业状态恢复到接收触发事件状态以表示对触发事件a的接收响应。

步骤S408,仿真机器人B停止当前正执行的顺序事件列表中的事件,重置到当前接收到的触发事件。

步骤S409,仿真机器人B执行触发事件a。

步骤S410,仿真机器人B在执行完触发事件a后,如果其顺序事件列表中的事件还没有完成,则重新回到执行顺序事件列表中的事件的状态。

步骤S411,仿真机器人B继续执行顺序事件列表中的事件。

例如,仿真机器人A为砌砖仿真机器人,仿真机器人B为供砖仿真机器人,供砖仿真机器人的顺序事件列表中的事件涉及到多个工序,砌砖仿真机器人的顺序事件列表包含砌砖事件,当砌砖仿真机器人砌完一块砖后,触发供砖仿真机器人传送下一块砖,供砖仿真机器人当前根据顺序事件列表正在执行抹灰事件,在收到砌砖仿真机器人的传送下一块砖的触发事件后,停止当前抹灰事件的动作,改为执行向砌砖仿真机器人送砖的事件,供砖仿真机器人完成送砖事件后,重新回到顺序事件列表中的抹灰事件。

需要说明的是,在不同的工序中,仿真机器人B也可以向仿真机器人A发送触发事件,此时,上述第一仿真机器人为仿真机器人B,第二仿真机器人为仿真机器人A,第一仿真机器人和第二仿真机器人根据触发事件列表中的事件确定,在一种可选的实施例中,仿真机器人A触发仿真机器人B的事件时,有可能仿真机器人A就停止工作,仿真机器人B完成了触发事件之后,再触发仿真机器人A继续按照顺序事件列表中的事件工作。

本实施例中,获取作业数据,并根据作业数据创建对应的第一仿真机器人,根据作业数据生成事件列表,在事件列表包括顺序事件列表的情况下,控制第一仿真机器人依次执行顺序事件列表中的事件;在事件列表包括触发事件列表的情况下,控制第一仿真机器人监听触发事件列表,以根据触发事件列表触发第二仿真机器人执行触发事件列表中的事件。通过在仿真场景下创建与实际场景的机器人一一对应的多个仿真机器人,根据机器人不同工种细分出机器人的部件以及相应的作业动作,并设置与实际场景相一致的顺序事件列表和触发事件列表以合理的存储结构化的作业数据,多个仿真机器人可根据用户设定的触发事件列表相互通信配合联动作业,实现了对同一场景下多个机器人联动作业的仿真,解决了现有技术中难以对同一场景下不同工种的建筑机器人同时进行仿真的技术问题,进而实现了对机器人联动作业的合理排程。

作为一种可选的实施例,在根据配置参数为每个所述作业数据创建一个对应的仿真机器人之前,方法还包括:对作业数据进行数据校验;在校验通过的情况下,将所述作业数据进行结构化处理,并进入根据配置参数为每个所述作业数据创建一个对应的仿真机器人的步骤,其中,所述结构化处理用于将所述作业数据转换为仿真机器人的部件的运动数据,并将所述运动数据与对应的部件进行绑定。

数据校验用于判断获取的作业数据的完整性和有效性,校验通过表示获取的作业数据是完整且有效的,实际场景中的机器人可以根据该作业数据正常作业,校验失败表示获取的作业数据格式或者特征不完整,数据无效导致在实际场景中机器人无法正常作业。例如,在建筑场景中,墙地砖填缝机器人的作业数据中高度应在0到墙体高度,如果作业数据中的高度超出这个高度范围,在机器人对墙地砖填缝作业时,会导致碰撞到地板或者天花板,此时,则为上述校验失败的情况。

结构化处理可理解为将用户设定的存储格式(例如,json格式)的作业数据,转换为机器人可识别执行的结构化数据,结构化数据可以包括机器人的各部件的运动数据、AGV数据等,使得不同工种的机器人根据不同的作业内容控制各种部件配合运动。例如,在建筑仿真的实施例中,用户设计的仿真机器人的作业数据,根据不同工种设置不同json格式的作业数据,在仿真场景中对该作业数据进行数据校验,在校验通过的情况下,根据仿真机器人的工种和部件结构对作业数据进行解析并进行结构化处理,根据作业数据对仿真机器人的相应部件设置作业动作,将部件的运动数据保存为结构化数据,使得仿真机器人在仿真中根据保存的结构化数据对正确的作业动作进行仿真。

作为一种可选的实施例,对作业数据进行数据校验包括如下至少一项:对作业数据进行格式校验,其中,在作业数据为预设格式的情况下,确定作业数据通过格式校验;对作业数据进行特征校验,其中,在作业数据包含预设的特征数据的情况下,确定作业数据通过特征校验;以及对作业数据进行范围校验,其中,在作业数据处于预设范围的情况下,确定作业数据通过范围校验。

上述作业数据的格式可以为json格式,格式校验可包括json格式校验和固定作业数据格式校验。例如,json格式中包括WorkState字段表示数据的完整性,预设格式可以为WorkState字段为1时的json格式,WorkState为1时表示数据完整,WorkState为0时表示数据不完整。固定作业数据格式包括固定字段头名称、作业数据编号名称、作业区域编号等。

以建筑仿真例,第一仿真机器人可为混凝土内墙打磨机器人,其作业数据存储为json格式,完整的作业数据包含导航路径数据、机器人面向数据以及动作数据。例如,存储的json格式的作业数据如下:

图6为一种可选的对json格式作业数据进行数据校验的流程图,如图6所示,对作业数据进行格式校验的步骤包括:步骤S601,获取混凝土内墙打磨机器人的作业数据;步骤S602,判断该作业数据是否为json格式,如果不为json格式,则进入步骤S605报错并退出数据校验;如果作业数据为json格式,进入步骤S603;步骤S603,对json格式的作业数据进行深入解析;步骤S604,判断json格式的作业数据中的WorkState字段是否为1,如果WorkState字段不为1(即WorkState为0),则说明当前作业中仅具有导航路径数据和机器人面向数据,缺少了动作数据,则进入步骤S605报错并退出数据校验;如果WorkState字段为1,说明同时包含了导航路径数据、机器人面向数据以及动作数据,数据格式完整,则进入步骤S606;步骤S606,继续深入解析作业数据,对数据进行结构化处理;步骤S607,对作业数据进行特征校验和数据范围校验,在特征校验和数据范围校验均通过的情况下,进入步骤S608,在特征校验和数据范围校验任意一个未通过的情况下,则进入步骤S605报错并退出数据校验;步骤S608,获得机器人可执行的结构化数据。

作业数据进行特征校验为对特定工种的仿真机器人具备的特征数据进行校验,预设的特征数据可根据特定工种确定,例如,在建筑仿真的实施例中,砖块的长、宽、高为供砖机器人所特有的作业数据,将砖块的长、宽、高作为预设的特征数据,则对供砖机器人的作业数据进行特征校验包括对砖块的长、宽、高数据的校验。

作业数据的范围校验,对仿真机器人的作业数据的范围的有效性进行校验,如果作业数据超出预设范围,则作业任务无法正常执行。例如,在建筑场景中,墙地砖填缝机器人的作业数据中高度应在0到墙体高度,如果作业数据中的高度超出这个高度范围,在机器人对墙地砖填缝作业时,会导致碰撞到地板或者天花板,在作业数据的范围校验时给出校验失败的提示。

作为一种可选的实施例,获取多个作业数据,并根据配置参数为每个所述作业数据创建一个对应的仿真机器人,包括:根据待仿真的目标场景选择创建区域,并进入所目标场景;查找目标场景下的作业数据;根据所述配置参数创建与目标场景下的作业数据对应的第一仿真机器人。

目标场景为待仿真的实际事件的对应场景,例如,在建筑仿真的实施例中,目标场景可以为某个建筑楼栋、或者某个楼层、或者某个区域,在进行仿真时,需要为建筑楼栋或者楼层或者区域创建对应的仿真区域。具体的,通过对仿真场景配置与目标场景一致的配置参数,可以使仿真场景与目标场景对应,配置参数包括但不限于场景唯一编号、作业数据唯一编号、目标场景的机器人唯一编号等。

目标场景下可以具有多个第一仿真机器人,每个第一仿真机器人与目标场景下的作业数据对应,可以理解为在该目标场景下,第一仿真机器人具有唯一的编号,且对应的作业数据编号唯一,第一仿真机器人的运动部件唯一等,使得在目标场景下,根据不同的作业数据确定的不同第一仿真机器人执行不同的作业内容,例如,在建筑仿真的实施例中,供砖机器人和砌砖机器人的具有不同的编号,不同的作业数据编号以及不同的运动部件编号,使得供砖机器人和砌砖机器人在仿真场景下得以区分并各自执行事件。

在建筑仿真的实施例中,目标场景为待仿真的建筑场景,首先创建出与实际建筑场景一致的仿真场景,对仿真场景的配置参数如表1所示,包括场景唯一编号、作业数据唯一编号、建筑机器人唯一编号、建筑机器人作业脚本名称、第一仿真机器人的运动部件唯一编号、第一仿真机器人仿真中通信指令编号等。

表1

在进入仿真之前,选择目标场景(即待仿真的区域信息),通过场景的唯一编号SceneId查询并获取到目标场景下需要仿真的作业数据,即获取到作业数据列表,作业数据列表中每个作业数据具有唯一编号TaskDataId,每个作业数据对应一个建筑机器人,通过建筑机器人唯一编号RobotId可以获得该建筑机器人的资源,可以根据建筑机器人的资源信息在仿真场景下创建该建筑机器人的模型,并绑定对应的作业脚本(建筑机器人实际功能对应的仿真功能脚本)名称实现第一仿真机器人的创建。

在实际场景中,可能存在多款型号相同的建筑机器人,导致在仿真场景中多个建筑机器人的编号TaskDataId相同,指令通信时无法区分控制哪个建筑机器人去配合作业,因此在创建第一仿真机器人时,需要对第一仿真机器人的编号重新命名,例如,重新生成第一仿真机器人的名称字段SceneRobotId,第一仿真机器人的名称字段由作业数据唯一编号TaskDataId和建筑机器人唯一编号RobotId拼接而成。

需要说明的是,在第一仿真机器人和第二仿真机器人配合作业的场景中,作业数据配置于第一仿真机器人的仿真状态RobotState下,由第一仿真机器人发起通信指令编号OrderId中对应的通信指令,通信指令可包括开始等待,开始返回到前一个导航站点,开始施工作业,停止当前状态作业各部件运动到初始状态等,第二仿真机器人接收通信指令后触发执行对应的触发事件。

作为一种可选的实施例,事件列表包括:自动导航数据、仿真动作数据和作业面数据,其中,自动导航数据包括:移动数据和当前面向数据,仿真动作数据用于指示部件的运动数据,作业面数据用于指示待仿真的作业面的属性信息,根据每个所述作业数据,生成与每个所述作业数据对应的仿真机器人的事件列表,包括:解析作业数据,生成具有执行顺序的事件;将事件按照执行顺序编排为事件列表。

在建筑仿真的实施例中,获取的作业数据可以通过结构化处理解析为自动导航数据(即AGV数据)、仿真动作数据和作业面数据,图5提供了一种根据结构化数据生成事件列表的示意图,如图5所示,结构化作业数据51可以解析获得AGV数据52、仿真动作数据53和作业面数据54,将AGV数据52、仿真动作数据53和作业面数据54进行解析,按照事件顺序编排获得事件列表55,进一步的,根据事件的执行属性,将事件列表55划分为顺序事件列表56和触发事件列表57。

作为一种可选的实施例,移动数据包括:起始位置坐标、结束位置坐标以及移动速度;当前面向数据包括:起始旋转角度、结束旋转角度以及旋转速度;仿真动作数据包括多个部件的开始运动位置、结束运动位置、部件的运动路径以及运动动画。

移动数据可用于第一仿真机器人执行AGV寻路事件,当第一仿真机器人在仿真过程中执行AGV寻路事件时,第一仿真器件人的位置RobotPos的计算方法为:

RobotPos=Positon(0)+CurrentT*i*MoveSpeed;

CurrentT=(Vector3.Distance(Positon(0),Positon(1))/MoveSpeed)/ΔT;

其中,Positon(0)为第一仿真机器人的起始位置坐标,Positon(1)为第一仿真机器人的结束位置坐标,MoveSpeed为第一仿真机器人的移动速度,Vector3.Distance为计算三维空间两点之间的距离,ΔT为事件列表中每帧对应时间(单位:秒),CurrentT为事件列表中当前帧的时间(单位:秒),i为当前的帧数(即第i帧)。

当前面向数据可用于第一仿真机器人执行旋转事件,以使第一仿真机器人旋转及改变面向,当第一仿真机器人在仿真过程中执行旋转事件时,第一仿真器件人的面向角度RobotAngle的计算方法为:

RobotAngle=Angle(0)+CurrentAngleT*i*AngleSpeed;

CurrentAngleT=((Angle(1)-Angle(0))/AngleSpeed)/ΔT;

其中,Angle(0)为第一仿真机器人的起始旋转角度,Angle(1)为第一仿真机器人的结束旋转角度,AngleSpeed为旋转速度,ΔT为事件列表中每帧对应时间(单位:秒),CurrentAngleT为事件列表中当前帧的旋转时间(单位:秒),i为当前的帧数(即第i帧)。

仿真动作数据可用于第一仿真机器人执行部件事件。在建筑仿真的实施例中,建筑机器人作业时控制多个部件运动来实现作业,比如机器臂,载重托盘,抹灰喷头,喷漆喷头等,相应的需要在事件列表中添加部件A1,部件A2等多个部件的事件。多个部件运动包括部件移动、部件旋转、部件播放复杂的作业动画(对于复杂的建筑工艺,通过给部件制作动画及特效提高仿真的效果)和绘制作业面等,例如,当第一仿真机器人执行动态绘制矩形工作面的事件时,作业面为矩形,通过动态缩放和移动矩形作业面可实现动态绘制效果,则动态绘制矩形工作面中矩形作业对象位置MeshPos和矩形作业面缩放倍数MeshScale的计算方法为:

MeshPos=PStartPos+CurrentWorkT*i;

MeshScale=CurrentWorkT*i/(PEndPos-PStartPos);

CurrentWorkT=(Vector3.Distance(PStartPos,PEndPos)/MoveSpeed)/ΔT;

其中,PStartPos为部件开始运动位置,PEndPos为部件结束运动位置,PWorkPos为部件作业时当前位置,PMoveSpeed为部件移动速度,ΔT为事件列表中每帧对应时间(单位:秒),Vector3.Distance为计算三维空间两点之间的距离,CurrentWorkT为事件列表中每帧运动的距离,i为当前的帧数(即第i帧)。

由上述计算方法可以得到,随着部件作业动作的变化(即部件开始运动位置和部件结束运动位置的变化),作业面的位置和缩放跟随作业面变化,以实现了动态绘制作业面的效果。

作为一种可选的实施例,所述仿真机器人被配置为根据所述顺序事件列表依次执行顺序事件,包括:控制所述仿真机器人获取所述事件列表中,用于表示触发其他机器人动作的调用事件,其中,所述调用事件中包括:事件编号、事件接收对象标识和事件数据;控制所述仿真机器人根据所述事件接收对象标识确定待触发的仿真机器人;控制所述仿真机器人向所述待触发的仿真机器人发送携带有所述事件编号和所述事件数据的触发信号。

上述触发信号可以由当前仿真机器人发出,其他仿真机器监听自己的触发事件列表中的事件,在监听到触发信号时,根据触发信号执行对应的触发事件。

具体的,调用事件包括:事件编号、事件接收对象和事件数据,事件数据,可以包括待触发的仿真机器人的AGV数据、部件运动数据等,例如,调用事件需要待触发的仿真机器人的某一个部件执行某个动作时,事件数据中包括待触发的仿真机器人的部件编号、部件开始运动的位置、部件结束运动的位置。

在建筑仿真的实施例中,当前仿真机器人可以为砌砖仿真机器人,待触发的仿真机器人可以为供砖仿真机器人,图3为一种可选的触发事件列表的示意图,如图3所示,供砖仿真机器人运砖事件33中包含事件编号、事件接收的对象(包括供砖仿真机器人的唯一编号)、开始运动的位置、结束运动的位置等,当砌砖仿真机器人监听到调用事件中的的供砖仿真机器人运砖事件33时(例如,当砌砖仿真机器人砌完一块砖的时候),向供砖仿真机器人发送上述事件信息的触发信号,供砖仿真机器人接收触发信号后,执行向砌砖仿真机器人运砖的事件。

实施例2

根据本发明实施例,提供了一种仿真装置的实施例,图7是根据本发明实施例的一种仿真装置的示意图,如图7所示,该装置包括:

获取模块71,用于获取获取多个作业数据,并根据配置参数为每个所述作业数据创建一个对应的仿真机器人;生成模块72,用于根据每个所述作业数据,生成与每个所述作业数据对应的仿真机器人的事件列表,其中,所述事件列表包括:顺序事件列表和触发事件列表;执行控制模块73,用于所述仿真机器人被配置为根据所述顺序事件列表依次执行顺序事件;监听控制模块74,用于被配置为监听其他仿真机器人发送的触发信号,所述触发信号用于触发所述仿真机器人执行所述触发事件列表中的触发事件。

作为一种可选的实施例,上述装置还包括:校验模块,用于在根据配置参数为每个所述作业数据创建一个对应的仿真机器人之前,对作业数据进行数据校验;结构化处理模块,用于在校验通过的情况下,将作业数据进行结构化处理,并进入根据配置参数为每个所述作业数据创建一个对应的仿真机器人的步骤,其中,结构化处理用于将作业数据转换为仿真机器人的部件的运动数据,并将运动数据与对应的部件进行绑定。

作为一种可选的实施例,校验模块包括如下至少一项:格式校验子模块,用于对作业数据进行格式校验,其中,在作业数据为预设格式的情况下,确定作业数据通过格式校验;特征校验子模块,用于对作业数据进行特征校验,其中,在作业数据包含预设的特征数据的情况下,确定作业数据通过特征校验;以及范围校验子模块,用于对作业数据进行范围校验,其中,在作业数据处于预设范围的情况下,确定作业数据通过范围校验。

作为一种可选的实施例,获取模块,包括:区域创建子模块,用于根据待仿真的目标场景选择创建区域,并进入所目标场景;查找子模块,用于查找目标场景下的作业数据;机器人创建子模块,用于根据所述配置参数创建与目标场景下的作业数据对应的第一仿真机器人。

作为一种可选的实施例,事件列表包括:自动导航数据、仿真动作数据和作业面数据,其中,自动导航数据包括:移动数据和当前面向数据,仿真动作数据用于指示部件的运动数据,作业面数据用于指示待仿真的作业面的属性信息,上述生成模块包括:解析子模块,用于解析作业数据,生成具有执行顺序的事件;编排子模块,用于将事件按照执行顺序编排为事件列表。

作为一种可选的实施例,移动数据包括:起始位置坐标、结束位置坐标以及移动速度;当前面向数据包括:起始旋转角度、结束旋转角度以及旋转速度;仿真动作数据包括多个部件的开始运动位置、结束运动位置、部件的运动路径以及运动动画。

作为一种可选的实施例,执行控制模块包括:第一控制子模块,用于控制所述仿真机器人获取所述事件列表中,用于表示触发其他机器人动作的调用事件,其中,所述调用事件中包括:事件编号、事件接收对象标识和事件数据;第二控制子模块,用于控制所述仿真机器人根据所述事件接收对象标识确定待触发的仿真机器人;第三控制子模块,用于控制所述仿真机器人向所述待触发的仿真机器人发送携带有所述事件编号和所述事件数据的触发信号。

实施例3

根据本发明实施例,提供了一种存储介质的实施例,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例1中的仿真方法。

实施例4

根据本发明实施例,提供了一种处理器的实施例,处理器用于运行程序,其中,程序运行时执行上述实施例1中仿真方法。

处理器用于运行程序,可以通过传输装置调用存储器存储的信息及应用程序,以执行上述实施例1中的仿真方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • AI处理器的仿真方法、装置、计算机设备及存储介质
  • AI处理器的仿真方法、装置、计算机设备及存储介质
技术分类

06120113135545