一种移动机器人的作业轨迹保存方法与流程

文档序号:26138666发布日期:2021-08-03 14:21阅读:249来源:国知局
一种移动机器人的作业轨迹保存方法与流程

本发明涉及机器人技术领域,具体涉及一种移动机器人的作业轨迹保存方法。



背景技术:

机器人在工作时需要根据定位装置对其当前位置进行定位,为了实现机器人工作状态的实时监控以及对机器人工作历史的追溯。机器人需要将定位数据发送到云端服务器进行存储。

由于机器人数量较多同时为了满足实时定位的时效性,服务器需要进行多机部署,为了满足机器人数量后带来的大量数据处理问题,服务器设计上一般支持主机扩容。在主机扩容之后由于服务器性能不一致,由此带来了机器人路径带来了诸多问题,其主要包括:

1、定位数据发送到不同主机后,服务端多个主机因为处理能力不一而导致接收处理定位数据时间乱序,此时如果直接将定位数据进行保存,那么在之后查询数据时得到的数据可能和机器人实际的工作轨迹不符。

2、机器人数量多且上报数据量大,保存数据造成存储介质的io瓶颈;并且数据量较多,导致存储数据条数多,数据量大,数据查询效率低;保存的路径点通过网络发送给显示方时数据量较大,流量占用大及显示方渲染效率低下。

3、机器人上报的坐标位置,由于定位重置(例如转移作业区域)等原因可能导致相邻的坐标点之间的距离间隔非常大,客户端在现实路径时往往将相邻坐标通过直线相连,但由于定位重置,两个相邻坐标简单相连可能导致新绘制路径与原路径不连续从而出现类似飞线等显示异常。

有鉴于此,急需对现有的机器人的作业轨迹保存方法进行改进,以保证路径与实际路径的一致,并提高效率。



技术实现要素:

针对上述缺陷,本发明所要解决的技术问题在于提供一种移动机器人的作业轨迹保存方法,以解决现有技术,由于主机服务器性能不一致,导致机器人保存的路径与实际工作轨迹不符、显示异常以及数据存储、查询效率低等问题。

为此,本发明提供了一种移动机器人的作业轨迹保存方法,包括以下步骤:

采用多机部署的各个服务器主机,分别接收各机器人的定位数据,所述定位数据全部放入全局缓存中形成暂存数据,所述定位数据包含机器人id和接收时间戳;

根据所述定位数据的接收时间戳对所述全局缓存中的暂存数据进行排序;

根据机器人id和到达当前位置的第一速度、第一运行时间与其到达上一位置的第二速度、第二时间的比较结果,为当前位置的缓存数据添加相应的标签;

定期将所述缓存数据连同标签一起写入数据库进行持久化,生成轨迹数据,所述定期为设定的执行持久化的时间间隔;

利用所述轨迹数据和标签生成机器人的作业轨迹。

在上述方法中,优选地,各个服务器主机接收到各机器人的定位数据后,在所述全局缓存中先按照接收时间毫秒数进行排序,再将同一分钟的定位数据按时间整合为一条数据,形成所述暂存数据。

在上述方法中,优选地,定期执行所述持久化时,每次从所述全局缓存中取出机器人n分钟前的轨迹数据和标签保存到所述数据库,最近n分钟的轨迹数据和标签在下一次持久化时进行保存,n为设定的执行持久化的时间间隔。

在上述方法中,优选地,将标签相同的轨迹数据按照时间先后顺序连接生成机器人的作业轨迹

在上述方法中,优选地,添加所述标签的方法如下:

在全局缓存中,选取从机器人当前位置起,最近三个坐标位置分别计为当前位置p1、参考位置p2和前级位置p3;其中,当前位置p1为机器人的当前位置,也是准备添加标签的位置,参考位置p2为当前位置p1的前一个位置,也是上次添加了标签的位置,前级位置p3为参考位置p2的前一个位置。

计算机器人在当前位置p1和参考位置p2之间的第一速度v1和第一时间t1;

计算机器人在参考位置p2和前级位置p3之间的第二速度v2和第二时间t2;

如果第一时间t1大于第二时间t2,或者第一速度v1大于第二速度v2,则标记为新路径,生成新的标签并添加,同时将当前位置p1作为新的参考位置,供下一个位置添加标签时作为参考位置使用;否则,将当前位置添加上一次的标签,即添加上与参考位置p2相同的标签。

在上述方法中,优选地,还包括在数据持久前剔除异常定位位置的步骤,方法如下:

计算需要处理的定位位置与参考位置的速度v1,然后再计算最近的10个已经进行异常点剔除的定位位置的平均速度v2,如果定位位置的时间判定为有效但速度v1远远大于最近10个点的平均速度v2则丢弃该定位位置。

由上述技术方案可知,本发明提供的移动机器人的作业轨迹保存方法,,解决了现有技术的机器人保存的路径与实际工作轨迹不符、显示异常以及数据存储、查询效率低等问题。与现有技术相比,本发明具有以下有益效果:

各个服务器主机,接收到各机器人的定位数据后,先将定位数据按照接收时间的先后顺序排序后在全局缓存中暂存,然后再根据机器人id和到达当前位置的第一速度、第一运行时间与其到达上一位置的第二速度、第二时间的比较结果,为当前位置的缓存数据添加相应的标签,定期写入数据库进行持久化。能够保证数据库中机器人的定位数据按时间有序存储,生成作业轨迹时能够正确显示其工作轨迹,减少计算量,并避免因数据量大造成保存数据时存储介质的io瓶颈。

附图说明

为了更清楚地说明本发明的实施例或现有技术中的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图做出简单地介绍和说明。显而易见地,下面描述中的附图仅仅是本发明的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种移动机器人的作业轨迹保存方法的流程图。

具体实施方式

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

本发明的实现原理是:

采用多机部署的各个服务器主机,接收到各机器人的定位数据后,先将定位数据按照接收时间的先后顺序排序后在全局缓存中暂存,然后再按照机器人id分组并添加标签后,定期写入数据库进行持久化。

本发明提供的方案,能够保证数据库中机器人的定位数据按时间有序存储,生成作业轨迹时能够正确显示其工作轨迹,减少计算量,并避免因数据量大造成保存数据时存储介质的io瓶颈。

为了对本发明的技术方案和实现方式做出更清楚地解释和说明,以下介绍实现本发明技术方案的几个优选的具体实施例。

需要说明的是,本文中“内、外”、“前、后”及“左、右”等方位词是以产品使用状态为基准对象进行的表述,显然,相应方位词的使用对本方案的保护范围并非构成限制。

请参见图1,图1为本发明提供的一种移动机器人的作业轨迹保存方法的流程图,该方法包括以下步骤:

步骤110,采用多机部署的各个服务器主机,分别接收各个机器人的定位数据,全部的定位数据都放入到系统的全局缓存中形成暂存数据。

每一条定位数据除了机器人的位置信息(位置坐标)之外,还包含有机器人id和当前位置的接收时间戳。通过机器人id区分该定位信息是哪个机器人发出的,通过接收时间戳记录该定位信息的当前时间。

步骤120,根据机器人的定位数据的接收时间戳对全局缓存中的暂存数据进行排序。

本发明中,接收时间戳为机器人定位数据的接收时间,采用毫秒数级。各个服务器主机接收到各机器人的定位数据后,在全局缓存中先按照接收时间(接收时间戳)的毫秒数进行排序,然后再将接收时间相同(同一分钟)的若干定位数据整合为一条数据,即以接收时间为单位,按照接收时间(接收时间戳)进行排序后按一分钟整合为一条数据,写入数据库形成暂存数据。

例如:同一分钟有三条数据,msg1=[abce],msg2=[eedd],msg3=[9876],合并后为一条msg4=[abce,eedd,9876]。

通过上述方法,将原本每分钟数十条的定位数据整合为一条数据,保存在数据库上,数据保存条数更少,极大提高了数据的检索和查询效率。

步骤130,根据机器人id和到达当前位置的第一速度、第一运行时间与其到达上一位置的第二速度、第二时间的比较结果,为当前位置的缓存数据添加相应的标签,同一个标签用于表示一条路径。

添加标签的方法具体如下:

在全局缓存中,选取从机器人当前位置起,最近三个坐标位置分别计为当前位置p1、参考位置p2和前级位置p3。其中,当前位置p1为机器人的当前位置,也是准备添加标签的位置,参考位置p2为当前位置p1的前一个位置,也是上次添加了标签的位置,前级位置p3为参考位置p2的前一个位置。

计算机器人在当前位置p1和参考位置p2之间的第一速度v1和第一时间t1;

计算机器人在参考位置p2和前级位置p3之间的第二速度v2和第二时间t2;

如果第一时间t1大于第二时间t2,或者第一速度v1大于第二速度v2,则标记为新路径,生成新的标签并添加,同时将当前位置p1作为新的参考位置,供下一个位置添加标签时作为参考位置使用;否则,将当前位置添加上一次的标签,即添加上与参考位置p2相同的标签。

步骤140,定期将全局缓存中的连同标签一起写入数据库进行持久化,生成轨迹数据,且按标签分组写入数据库。

本发明中,定期表示的是设定的执行持久化的时间间隔。

定期执行持久化时,每次从全局缓存中取出机器人n分钟前的轨迹数据和标签保存到所述数据库,最近n分钟的轨迹数据和标签在下一次持久化时进行保存,n为设定的执行持久化的时间间隔,例如每隔2分钟执行一次持久化,则n=2。

n分钟的缓存时间,可以有效的规避在数据因为网络延时等问题而导致部分定位数据因为错过保存时间而丢失,最终导致定位数据追溯时缺失的问题。定期存储也极大的降低了数据保存对存储介质io带来的压力,提高了存储硬件的利用率。

步骤150,客户端利用数据库中的轨迹数据和标签生成所述机器人的作业轨迹。

机器人上报的定位数据(坐标位置),由于定位重置等原因可能导致相邻的坐标点之间的距离间隔非常大,而客户端在生成路径时往往将相邻坐标通过直线相连,但由于定位重置,两个相邻坐标简单相连可能导致新绘制路径与原路径不连续从而出现类似飞线的显示效果。

本发明方法中,在将缓存数据写入数据库时,会将属于同一个时间段内的坐标点标记上相同的标签,生成作业轨迹时,将相同标签的数据按照时间先后顺序连接即可。

不同标签的路径点不会相连,因此不同的机器人会生成多条互相独立的作业轨迹。

由于机器人上报的定位数据中可能包含定位重置后的异常定位坐标,异常数据的保存会导致轨迹显示错乱。因此,本发明方法,在数据保存前会进行异常定位位置的剔除,具体方法为:

先计算需要处理的当前位置与参考位置之间的第一速度v1,然后再计算最近10个已经进行异常点剔除的定位位置的平均速度v,如果当前位置的时间判定为有效,但第一速度v1远远大于最近10个点的平均速度v,说明该当前位置属于异常数据,丢弃该当前位置,从而剔除了异常位置。

综合以上具体实施例的描述,本发明提供的移动机器人的作业轨迹保存方法,与现有技术相比,具有如下优点:

首先,各个服务器主机,接收到各机器人的定位数据后,先将定位数据按照接收时间的先后顺序排序后在全局缓存中暂存,然后再按照机器人id和前后速度和运行时间的比较结果添加相应的标签进行分组,再定期写入数据库进行持久化。能够保证数据库中机器人的定位数据按时间有序存储,生成作业轨迹时能够正确显示其工作轨迹,减少计算量,并避免因数据量大造成保存数据时存储介质的io瓶颈。

第二、各个服务器主机接收到各机器人的定位数据后,先按照接收时间毫秒数进行排序,再将同一分钟的定位数据整合为一条数据,减少了数据量,提高了效率。

第三、定期执行所述持久化时,每次从所述全局缓存中取出机器人n分钟前的轨迹数据和标签保存到所述数据库,最近n分钟的轨迹数据和标签在下一次持久化时进行保存。与实时保存相比,能够有效的规避因为网络延时等问题而导致部分定位数据因为错过保存时间而丢失的问题。

第四、在数据保存前会进行异常定位位置的剔除,避免异常数据的保存导致轨迹显示错乱。

最后,还需要说明的是,在本文中使用的术语"包括"、"包含"或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个…"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本发明并不局限于上述最佳实施方式,任何人应该得知在本发明的启示下做出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1