一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

栅格地图处理方法、装置、系统、电子设备和计算机介质与流程

2021-11-03 21:12:00 来源:中国专利 TAG:


1.本技术实施例涉及机器人技术领域,具体涉及栅格地图处理方法、装置、系统、电子设备和计算机介质。


背景技术:

2.移动机器人是能够自动移动以执行工作的机器装置。它既可以接受人类指挥移动,又可以运行预先编排的程序进行自主移动。移动机器人通常使用栅格地图进行定位和导航。栅格地图会随着场景区域的增大而成倍增加,导致移动机器人存储压力增大,处理器性能降低。


技术实现要素:

3.本技术实施例提出了栅格地图处理方法、装置、系统、电子设备和计算机介质,能够降低栅格地图的内存消耗。
4.第一方面,本技术实施例提供了一种栅格地图处理方法,该方法包括:基于移动机器人的工作轨迹,确定原栅格地图中的目标区域;基于所述目标区域内的栅格数据,生成目标栅格地图。
5.第二方面,本技术实施例提供了一种栅格地图处理方法,应用于移动机器人,该方法包括:响应于获取到目标栅格地图,对所述目标栅格地图进行压缩编码,得到编码数据,目标栅格地图是根据移动机器人的工作轨迹确定的;将所述编码数据存储于本地。
6.第三方面,本技术实施例提供了一种栅格地图处理装置,该装置包括:确定单元,被配置成基于移动机器人的工作轨迹,确定原栅格地图中的目标区域;生成单元,被配置成基于所述目标区域内的栅格数据,生成目标栅格地图。
7.第四方面,本技术实施例提供了一种栅格地图处理装置,应用于移动机器人,该装置包括:编码单元,被配置成响应于获取到目标栅格地图,对所述目标栅格地图进行压缩编码,得到编码数据;存储单元,被配置成将所述编码数据存储于本地。
8.第五方面,本技术实施例提供了一种栅格地图处理系统,包括:服务器,用于基于移动机器人的工作轨迹,确定原栅格地图中的目标区域;基于所述目标区域内的栅格数据,生成目标栅格地图;将所述目标栅格数据发送至移动机器人;所述移动机器人,用于对所述目标栅格地图进行压缩编码,得到编码数据;将所述编码数据存储于本地。
9.第六方面,本技术实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面或第二方面中所描述的方法。
10.第七方面,本技术实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面或第二方面中所描述的方法。
11.本技术实施例提供的栅格地图处理方法、装置、系统、电子设备和计算机介质,通过基于移动机器人的工作轨迹来确定原栅格地图中的目标区域,并基于目标区域内的栅格
数据生成目标栅格地图,可使所生成的目标栅格地图在涵盖移动机器人的工作轨迹的同时,去除了大量非必要区域,减少了内存消耗。
附图说明
12.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
13.图1是根据本技术一个实施例的栅格地图处理方法的流程图;
14.图2是根据本技术一个实施例的栅格地图处理方法中的栅格地图的示意图;
15.图3是根据本技术又一个实施例的栅格地图处理方法的流程图;
16.图4是根据本技术又一个实施例的栅格地图处理方法的流程图;
17.图5是根据本技术一个实施例的栅格地图处理装置的结构示意图;
18.图6是根据本技术又一个实施例的栅格地图处理装置的结构示意图;
19.图7是根据本技术又一个实施例的栅格地图处理系统的系统架构图;
20.图8是用于实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
21.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
22.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
23.请参考图1,其示出了根据本技术的栅格地图处理方法的一个实施例的流程100。该栅格地图处理方法,包括以下步骤101~102:
24.步骤101,基于移动机器人的工作轨迹,确定原栅格地图中的目标区域。
25.在本实施例中,栅格地图处理方法的执行主体(如服务器或移动机器人等电子设备)中可以存储有特定空间的栅格地图(可记为原栅格地图)。上述特定空间中可部署至少一个移动机器人。上述移动机器人可包括但不限于agv(automated guided vehicle,自动导引车)、amr(autonomous mobile robots,自主移动机器人)、穿梭车等能够基于栅格地图进行自动定位和导航的装置。
26.栅格地图是一种常用的高精地图,也是一种对真实环境进行数字栅格化的产物。栅格地图中包括大量的大小相等的栅格(也可称为栅格单元、像元等)。每个栅格对应真实环境中的一个区域,且具有对应的栅格数据。该栅格数据可用数值形式表示,亦可称为栅格值、像元值、像素值等,用以表示该栅格是被占据的概率。基于某栅格的栅格数据,即可得知该栅格是否被占据,由此可通过栅格数据来确定栅格所对应的真实环境区域是否可通行。
27.通常,每个移动机器人在上述特定空间中可具有特定的工作区域或工作路线,每个移动机器人的工作区域或工作路线通常仅占据上述特定空间的局部。故对于单个移动机器人而言,其工作所需数据仅为原栅格地图的局部栅格数据。鉴于此,在本实施例中,可以基于移动机器人的工作轨迹,确定原栅格地图中的目标区域,该目标区域为原栅格地图中的局部区域。此处的工作轨迹可以指栅格地图中的轨迹,即移动机器人在实际环境中的工
作轨迹对应在栅格地图中的对应轨迹。栅格地图的目标区域中可包含该工作轨迹。基于该工作轨迹,上述执行主体可以通过多种方式(如自动识别、手动框选等方式)确定原栅格地图中的目标区域。
28.步骤102,基于目标区域内的栅格数据,生成目标栅格地图。
29.在本实施例中,目标区域内可包括多个栅格,每个栅格具有对应的栅格数据,用以表征该栅格被占据的概率。上述执行主体可以提取目标区域内的栅格数据,得到目标栅格地图。
30.其中,目标栅格地图的原点可以是目标区域的一个顶点,如步骤101中的示例的点(x
min
,y
min
)。其中x
min
=x1‑
len/res,y
min
=y1‑
len/res。此时,目标区域中的每个栅格在目标栅格地图中的坐标可通过将该栅格在原栅格地图中的坐标进行平移(x
min
,y
min
)的方式确定。
31.可以理解的是,若上述执行主体为服务器,则在生成目标栅格地图后,可将该目标栅格地图发送至移动机器人,使得移动机器人基于可基于目标栅格地图进行工作或者进一步进行压缩编码等处理。
32.通过基于移动机器人的工作轨迹来确定原栅格地图中的目标区域,并基于目标区域内的栅格数据生成目标栅格地图,可使所生成的目标栅格地图在涵盖移动机器人的工作轨迹的同时,去除了大量非必要区域,减少了内存消耗。
33.另外,由于上述处理过程中未降低栅格地图的分辨率,故不会造成移动机器人定位精度以及导航路径规划性能的降低。同时,由于移动机器人在工作过程中不需要进行地图切换,故不会造成移动机器人工作效率的下降。由此,可在不失精度且不降低工作效率的前提下,降低栅格地图对移动机器人的内存消耗。
34.在一些可选的实施例中,可通过用户手动框选的方式来确定原栅格地图中的目标区域。具体地,上述执行主体可以检测用户在原栅格地图中针对移动机器人的工作轨迹的第一框选操作。第一框选操作可用于从原栅格地图中框选出一个包围该工作轨迹的矩形区域。在第一框选操作结束后,可将该第一框选操作所框选出的区域确定为目标区域,由此,可灵活地得到原栅格地图中移动机器人的工作轨迹所在的目标区域。由于该目标区域为原栅格地图中的局部区域,因此可有效减少后续基于该目标区域所生成的目标栅格地图的尺寸,从而提高栅格地图的加载效率,并降低移动机器人的内存消耗。
35.在一些可选的实施例中,上述执行主体可以自动确定原栅格地图中的目标区域。具体地,可以首先确定移动机器人的工作轨迹在原栅格地图中的横坐标最小值x1、纵坐标最小值y1、横坐标最大值x2和纵坐标最大值y2。而后,可基于x1、y1、x2、y2、原栅格地图的分辨率(可记为res)以及移动机器人中所安装的激光传感器的测量长度(可记为len),确定原栅格地图中的目标区域。在基于x1、y1、x2、y2、res和len确定目标区域的过程中,可首先计算目标区域的横坐标最小值x
min
、纵坐标最小值y
min
、横坐标最大值x
max
和纵坐标最大值y
max
。其中,x
min
=x1‑
len/res,y
min
=y1‑
len/res,x
max
=x2 len/res,y
max
=y2‑
len/res。而后,可将坐标(x
min
,y
min
)与坐标(x
max
,y
max
)作为对角顶点,将对角顶点所构成的矩形区域,确定为目标区域。结合激光传感器的测量长度来确定目标区域,不仅可保证可以确保移动机器人的工作位于目标区域内,同时可使移动机器人在位于工作轨迹边缘处时能够获取到四周的激光数据。本实现方式可基于移动机器人的工作轨迹自动确定出原栅格地图中的目标区域,
在有效减少后续生成的目标栅格地图的尺寸的同时,有降低了人力成本。
36.在一些可选的实施例中,上述执行主体还可以首先自动确定原栅格地图中的目标区域,而后基于用户手动框选的区域对目标区域进行调整,以使目标区域进一步减小。具体地,在通过上述实现方式自动确定出目标区域后,上述执行主体还可以检测用户在目标区域中针对工作轨迹的第二框选操作。第二框选操作可用于从目标区域中框选出一个包围该工作轨迹的子区域。在第二框选操作结束后,上述执行主体可将该第二框选操作所框选出的区域确定为目标区域。
37.作为示例,图2示出了栅格地图的示意图。在栅格地图中包含移动机器人a的工作轨迹(如标号201所示)和移动机器人b的工作轨迹(如标号202所示)。上述执行主体可分别移动机器人a的工作轨迹和移动机器人b的工作轨迹自动识别出移动机器人a的目标区域(如标号203所示)和移动机器人b的目标区域(如标号204所示)。在此基础上,用户可进一步在目标区域中进行手动框选,得到手动框选的区域(如标号205和标号206所示)。上述执行主体可在得到用户手动框选的区域后,将用户手动框选的区域作为新的目标区域,以替换原有的目标区域。
38.本方式通过先自动确定目标区域,后基于用户手动框选的区域对目标区域进行调整,可使得目标区域进一步减小,有助于进一步减少后续生成的目标栅格地图的尺寸,从而进一步降低栅格地图对移动机器人的内存消耗。此外,当工作轨迹临时变更时,通过手动框选可灵活对自动框选的目标区域进行调整,避免了目标区域发生错误。
39.在一些可选的实施例中,在基于目标区域内的栅格数据生成目标栅格地图之前,上述执行主体还可以检测用户在目标区域中针对工作轨迹以外区域的第三框选操作。第三框选操作可用于从目标区域中框选出工作轨迹以外的区域。第三框选操作所框选的区域可以是规则形状或者不规则形状,此处不作具体限定。作为示例,用户通过第三框选操作所框选出的区域如图2中的标号207所示,该区域位于目标区域中,且不包含移动机器人的工作轨迹。在第三框选操作结束后,上述执行主体可以将第三框选操作所框选出的区域作为非工作区域,将非工作区域内的栅格数据设置为初始值。本实现方式通过将目标区域中不会使用到的数据设置为初始值,提高了后续对目标栅格地图压缩编码的效率。
40.进一步参考图3,其示出了根据本技术的栅格地图处理方法的又一个实施例的流程300。该栅格地图处理方法的执行主体可以是服务器或移动机器人等电子设备。该栅格地图处理方法,包括以下步骤301~304:
41.步骤301,基于移动机器人的工作轨迹,确定原栅格地图中的目标区域。
42.本实施例的步骤301可参见图1对应实施例的步骤101,此处不再赘述。
43.步骤302,基于目标区域内的栅格数据,生成目标栅格地图。
44.本实施例的步骤302可参见图1对应实施例的步骤102,此处不再赘述。
45.步骤303,对目标栅格地图进行压缩编码,得到编码数据。
46.在本实施例中,上述执行主体可以对目标栅格地图进行压缩编码,得到编码数据。此处,可使用游程长度编码、列式编码、四叉树编码等各种常用的压缩编码方式对目标栅格地图进行压缩编码。
47.栅格数据的原始数据类型通常为双精度浮点型(double)。由于栅格数据通常为[0,255]范围内的整数,而双精度浮点型可表示的数值范围为[0,2047],因此以双精度浮点
型存储栅格数据存在内存大量浪费的问题。鉴于此,在本实施例的一些可选的实现方式中,可首先对将目标栅格地图中的栅格数据由原始数据类型(即double类型)转换为目标数据类型,如8位无符号整型(uint8)、字符类型(char)等,得到待压缩栅格地图。而后,对该待压缩栅格地图进行压缩编码,得到编码数据。由于栅格数据范围为[0,255],因此将原始数据类型(如double类型)转换为目标数据类型(如uint8、char类型),并不会造成栅格数据精度的降低,同时节省了栅格数据的内存占用量。
[0048]
步骤304,将编码数据存储于移动机器人中。
[0049]
需要说明的是,如果图3所示实施例由服务器执行,则将编码数据存储于移动机器中具体包括:服务器向移动机器人发送编码数据。
[0050]
在本实施例中,在得到编码数据后,可将编码数据存储于移动机器人中。移动机器人可从该编码数据中查询某个位置的栅格数据,从而基于该栅格数据进行定位和导航。由于目标栅格地图的编码数据的大小相较于原栅格地图大大减小,因此将该编码数据传输至移动机器人,可大大提高服务器与移动机器人之间的通信效率。
[0051]
需要说明的是,如果图3所示实施例由移动机器人执行,移动机器人还可以将所得到的编码数据传输给服务器,从而使得服务器与机器人同时存储该编码数据。同理,由于目标栅格地图的编码数据的大小相较于原栅格地图大大减小,因此可大大提高服务器与移动机器人之间的通信效率。
[0052]
在本实施例中,通过基于移动机器人的工作轨迹来确定原栅格地图中的目标区域,并基于目标区域内的栅格数据生成目标栅格地图,可使所生成的目标栅格地图在涵盖移动机器人的工作轨迹的同时,去除了大量非必要区域,减少了移动机器人的内存消耗。另外,通过目标栅格地图进行压缩编码得到编码数据,使移动机器人存储编码数据,可进一步降低移动机器人内存的消耗。
[0053]
另外,由于上述处理过程中未降低栅格地图的分辨率,因此不会造成移动机器人定位精度以及导航路径规划性能的降低。同时,由于移动机器人在使用编码数据进行工作的过程中不需要进行地图切换,因此不会造成移动机器人工作效率的下降。由此,可在不失精度且不降低工作效率的前提下,降低栅格地图对移动机器人的内存消耗。
[0054]
在一些可选的实施例中,在步骤303中,可采用游程长度编码方式对待压缩栅格地图进行压缩编码。游程长度编码又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码,是栅格数据压缩的一种重要编码方法。采用游程长度编码方式对待压缩栅格地图进行压缩编码的具体过程可参见如下子步骤s11至子步骤s12:
[0055]
子步骤s11,按照行数或列数将待压缩栅格地图中的栅格数据划分为多个向量。
[0056]
此处,上述执行主体可以按照行数将待压缩栅格地图中的栅格数据划分为多个向量。此时,待压缩栅格地图中的每一行栅格数据对应一个行向量。同理,上述执行主体也可以按照列数将待压缩栅格地图中的栅格数据划分为多个向量。此时,待压缩栅格地图中的每一列栅格数据对应一个列向量。
[0057]
可选的,上述执行主体还可以基于行数和列数的大小,来确定按照行数亦或是列数进行栅格数据划分。具体地,若待压缩栅格地图的行数大于列数,可按照列数将待压缩栅格地图中的栅格数据划分为多个列向量。若待压缩栅格地图的行数小于或等于列数,按照行数将待压缩栅格地图中的栅格数据划分为多个行向量。由此,可基于待压缩栅格地图的
短边进行栅格数据的划分,使划分后得到更少的向量,以便提高压缩编码效率。
[0058]
子步骤s12,采用游程长度编码方式对多个向量进行压缩编码,得到各向量对应的编码数据。
[0059]
此处,若上述多个向量为列向量,则对于上述多个向量中的每一个向量,可将该向量中首个栅格数据对应的行序和首个栅格数据以二元组形式记录,二元组形式可以是<行序,栅格数据>。对于该向量中从第二个栅格数据起的每一个栅格数据,若该栅格数据与前一栅格数据不同,可将该栅格数据对应的行序和该栅格数据以二元组形式记录。最后,可将所记录的二元组汇总,得到该向量对应的编码数据。
[0060]
同理,若上述多个向量为行向量,则对于多个向量中的每一个向量,可将该向量中首个栅格数据对应的列序和首个栅格数据以二元组形式记录,二元组形式可以是<列序,栅格数据>。对于该向量中从第二个栅格数据起的每一个栅格数据,若该栅格数据与前一栅格数据不同,可将该栅格数据对应的列序和该栅格数据以二元组形式记录。最后,将所记录的二元组汇总,得到该向量对应的编码数据。
[0061]
下面以一具体示例进行说明。该示例中,待压缩栅格地图中的栅格共有5行10列。按照行数对该待压缩栅格地图中的栅格进行划分后,可得到5个行向量。按照行序依次为:
[0062]
[1 1 1 1 0 0 0 0 1 1]
[0063]
[1 1 1 1 0 0 0 0 1 1]
[0064]
[1 1 1 1 1 1 0 0 0 0]
[0065]
[1 1 1 1 0 0 0 0 0 0]
[0066]
[1 1 1 1 1 1 1 1 0 0]
[0067]
第一行对应的向量中首个栅格数据(即第一列栅格数据)为1,对应的列序为1,可记为<1,1>。第5列栅格数据为0,与前一栅格数据不同,将其记录为<5,0>。第9列栅格数据为1,与前一栅格数据不同,将其记录为<9,1>。由此,第一行对应的向量的游程长度编码结果为<1,1><5,0><9,1>。同理,第二行对应的向量的游程长度编码结果为<1,1><5,0><9,1>。第三行对应的向量的游程长度编码结果为<1,1><7,0>。第四行对应的向量的游程长度编码结果为<1,1><5,0>。第五行对应的向量的游程长度编码结果为<1,1><9,0>。
[0068]
由于游程长度编码的基本原理是在行(或列)中的某一数据发生变化时将该数据以及用于表征该数据位置的列序(或行序)作为一个编码,因此可将相同数据采用同一个编码表示,使编码数据的长度小于原始数据的长度。如上述示例中,通过游程长度编码,可将待压缩栅格地图中50个栅格数据压缩为12个二元组形式的编码数据,大大减少了数据量,降低了移动机器人的内存占用量。
[0069]
在一些可选的实施例中,在通过游程长度编码得到编码数据后,或者,在将编码数据存储于移动机器人后,可基于该编码数据快速查找到某一个栅格对应的栅格数据。具体地,可首先确定待查询的目标行(或目标列),而后确定该目标行(或目标列)中的目标二元组,从而从该目标二元组中读取出所需的目标栅格数据。下面以两种场景分别进行详细说明:
[0070]
在一些场景中,若对列向量压缩编码,则可得到多列编码数据,每列编码数据可包括至少一个二元组。在接收到针对目标栅格的栅格数据查询请求时,可以首先确定目标栅格在目标栅格地图中的目标坐标。其中,原栅格地图与目标栅格地图的坐标转换关系可参
见前述步骤102,此处不再赘述。在确定出目标坐标后,可基于目标坐标,确定编码数据的目标列和索引值。其中,目标坐标中的纵坐标值可以指代目标列,目标坐标中的横坐标值可以为索引值。之后,可从目标列对应的编码数据中查询行序小于或等于索引值的最后一个二元组(可作为目标二元组)。最后,将该最后一个二元组中的栅格数据由目标数据类型转换为原始数据类型,得到目标栅格数据,并返回该目标栅格数据。
[0071]
在另一些场景中,若对行向量压缩编码,则可得到多行编码数据,每行编码数据可包括至少一个二元组。在接收到针对目标栅格的栅格数据查询请求时,可以首先确定目标栅格在目标栅格地图中的目标坐标。其中,原栅格地图与目标栅格地图的坐标转换关系可参见前述步骤102,此处不再赘述。在确定出目标坐标后,可基于目标坐标,确定编码数据的目标行和索引值。其中,目标坐标中的横坐标值可以指代目标行,目标坐标中的纵坐标值可以为索引值。之后,可从目标行对应的编码数据中查询列序小于或等于索引值的最后一个二元组(可作为目标二元组)。最后,将该最后一个二元组中的栅格数据由目标数据类型转换为原始数据类型,得到目标栅格数据,并返回该目标栅格数据。
[0072]
下面以子步骤s12中的示例进行说明。该示例中,第一行编码数据为<1,1><5,0><9,1>。第二行编码数据为<1,1><5,0><9,1>。第三行编码数据为<1,1><7,0>。第四行编码数据为<1,1><5,0>。第五行编码数据为<1,1><9,0>。若需要查找目标栅格地图中坐标为(2,6)的栅格的栅格数据,则可以将第二行作为目标行,将6作为索引值,从第二行编码数据<1,1><5,0><9,1>中,查询列序小于或等于6的最后一个二元组。由于该行编码数据中第一个二元组<1,1>中的列序为1、第二个二元组<5,0>中的列序为5,因此查询列序小于或等于6的最后一个二元组为第二个二元组<5,0>。由此,可提取该二元组<5,0>中的编码数据0,并将其转换为原始数据类型后进行返回。
[0073]
可以理解的是,若直接从原栅格地图或者目标栅格地图中查询某一栅格的栅格数据,则需要先执行确定该栅格所在行的步骤,再执行从确定该栅格所在列的操作,从而读取所需的目标栅格数据。由此,相较于原始查询方式,本实现方式中从编码数据中确定待查询的目标行(或目标列)的操作并不会降低查询效率。此外,由于待压缩栅格地图中未选取过多无用区域,故编码数据中各行(或列)的数据量很小,因此从目标行(或目标列)中确定目标二元组并从中读取目标栅格数据的操作,也不会导致查询效率的降低。由此,基于游程长度编码得到的编码数据进行栅格数据查询,能够保证栅格数据的查询效率。
[0074]
本技术的上述实施例提供的方法,通过基于移动机器人的工作轨迹来确定原栅格地图中的目标区域,并基于目标区域内的栅格数据生成目标栅格地图,可使所生成的目标栅格地图在涵盖移动机器人的工作轨迹的同时,去除了大量非必要区域,减少了内存消耗。另外,通过对目标栅格地图进行压缩编码得到编码数据,使移动机器人存储编码数据,可进一步降低移动机器人内存的消耗。
[0075]
进一步参考图4,其示出了根据本技术的栅格地图处理方法的又一个实施例的流程400。该栅格地图处理方法的执行主体可以是移动机器人等电子设备。该栅格地图处理方法,包括以下步骤401~402:
[0076]
步骤401,响应于获取到目标栅格地图,对目标栅格地图进行压缩编码,得到编码数据。其中,目标栅格地图是根据移动机器人的工作轨迹确定的。具体的,目标栅格地图对应于原栅格地图中根据移动机器人的工作轨迹确定的局部区域。
[0077]
例如,移动机器人可以从服务器接收该目标栅格地图。
[0078]
在本实施例中,上述执行主体可以在获取到目标栅格地图后,对目标栅格地图进行压缩编码,得到编码数据。此处,可使用游程长度编码、列式编码、四叉树编码等各种常用的压缩编码方式对目标栅格地图进行压缩编码。实践中,目标栅格地图可由服务器生成发送至上述执行主体,也可由上述执行主体生成。目标栅格地图的生成方式可参见上述实施例中的描述,此处不再赘述。
[0079]
栅格数据的原始数据类型通常为双精度浮点型(double)。由于栅格数据通常为[0,255]范围内的整数,而双精度浮点型可表示的数值范围为[0,2047],因此以双精度浮点型存储栅格数据存在内存大量浪费的问题。鉴于此,在本实施例的一些可选的实现方式中,可首先对将目标栅格地图中的栅格数据由原始数据类型(即double类型)转换为目标数据类型,如8位无符号整型(uint8)、字符类型(char)等,得到待压缩栅格地图。而后,对该待压缩栅格地图进行压缩编码,得到编码数据。由于栅格数据范围为[0,255],因此将原始数据类型(如double类型)转换为目标数据类型(如uint8、char类型),并不会造成栅格数据精度的降低,同时节省了栅格数据的内存占用量。
[0080]
步骤402,将编码数据存储于本地。
[0081]
在本实施例中,在得到编码数据后,可将编码数据存储于本地。上述执行主体可从该编码数据中查询某个位置的栅格数据,从而基于该栅格数据进行定位和导航。
[0082]
需要说明的是,在得到编码数据后,上述执行主体还可以将所得到的编码数据传输给上述服务器,从而使得服务器与移动机器人同时存储该编码数据。由于编码数据的数量相较于原栅格地图大大减小,因此可大大提高服务器与移动机器人之间的通信效率。
[0083]
通过对目标栅格地图进行压缩编码得到编码数据,并将编码数据存储于移动机器人本地,可降低移动机器人内存的消耗。
[0084]
另外,由于上述处理过程中未降低栅格地图的分辨率,因此不会造成移动机器人定位精度以及导航路径规划性能的降低。同时,由于移动机器人在使用编码数据进行工作的过程中不需要进行地图切换,因此不会造成移动机器人工作效率的下降。由此,可在不失精度且不降低工作效率的前提下,降低栅格地图对移动机器人的内存消耗。
[0085]
在一些可选的实施例中,在步骤401中,可采用游程长度编码方式对待压缩栅格地图进行压缩编码。具体地,可首先按照行数或列数将待压缩栅格地图中的栅格数据划分为多个向量。而后采用游程长度编码方式对多个向量进行压缩编码,得到各向量对应的编码数据。
[0086]
其中,在按照行数或列数将待压缩栅格地图中的栅格数据划分为多个向量时,上述执行主体还可以基于行数和列数的大小,来确定按照行数亦或是列数进行栅格数据划分。具体地,若待压缩栅格地图的行数大于列数,可按照列数将待压缩栅格地图中的栅格数据划分为多个列向量。若待压缩栅格地图的行数小于或等于列数,按照行数将待压缩栅格地图中的栅格数据划分为多个行向量。由此,可基于待压缩栅格地图的短边进行栅格数据的划分,使划分后得到更少的向量,以便提高压缩编码效率。
[0087]
其中,在采用游程长度编码方式对多个向量进行压缩编码时,若上述多个向量为列向量,则对于上述多个向量中的每一个向量,可将该向量中首个栅格数据对应的行序和首个栅格数据以二元组形式记录,二元组形式可以是<行序,栅格数据>。对于该向量中从第
二个栅格数据起的每一个栅格数据,若该栅格数据与前一栅格数据不同,可将该栅格数据对应的行序和该栅格数据以二元组形式记录。最后,可将所记录的二元组汇总,得到该向量对应的编码数据。同理,若上述多个向量为行向量,则对于多个向量中的每一个向量,可将该向量中首个栅格数据对应的列序和首个栅格数据以二元组形式记录,二元组形式可以是<列序,栅格数据>。对于该向量中从第二个栅格数据起的每一个栅格数据,若该栅格数据与前一栅格数据不同,可将该栅格数据对应的列序和该栅格数据以二元组形式记录。最后,将所记录的二元组汇总,得到该向量对应的编码数据。
[0088]
由于游程长度编码的基本原理是在行(或列)中的某一数据发生变化时将该数据以及用于表征该数据位置的列序(或行序)作为一个编码,因此可将相同数据采用同一个编码表示,使编码数据的长度小于原始数据的长度。如上述示例中,通过游程长度编码,可将待压缩栅格地图中50个栅格数据压缩为12个二元组形式的编码数据,大大减少了数据量,降低了移动机器人的内存占用量。
[0089]
在一些可选的实施例中,在将编码数据存储于本地后,可基于该编码数据快速查找到某一个栅格对应的栅格数据。具体地,可首先确定待查询的目标行(或目标列),而后确定该目标行(或目标列)中的目标二元组,从而从该目标二元组中读取出所需的目标栅格数据。下面以两种场景分别进行详细说明:
[0090]
在一些场景中,若对列向量压缩编码,则可得到多列编码数据,每列编码数据可包括至少一个二元组。在接收到针对目标栅格的栅格数据查询请求时,可以首先确定目标栅格在目标栅格地图中的目标坐标。在确定出目标坐标后,可基于目标坐标,确定编码数据的目标列和索引值。其中,目标坐标中的纵坐标值可以指代目标列,目标坐标中的横坐标值可以为索引值。之后,可从目标列对应的编码数据中查询行序小于或等于索引值的最后一个二元组(可作为目标二元组)。最后,将该最后一个二元组中的栅格数据由目标数据类型转换为原始数据类型,得到目标栅格数据,并返回该目标栅格数据。
[0091]
在另一些场景中,若对行向量压缩编码,则可得到多行编码数据,每行编码数据可包括至少一个二元组。在接收到针对目标栅格的栅格数据查询请求时,可以首先确定目标栅格在目标栅格地图中的目标坐标。在确定出目标坐标后,可基于目标坐标,确定编码数据的目标行和索引值。其中,目标坐标中的横坐标值可以指代目标行,目标坐标中的纵坐标值可以为索引值。之后,可从目标行对应的编码数据中查询列序小于或等于索引值的最后一个二元组(可作为目标二元组)。最后,将该最后一个二元组中的栅格数据由目标数据类型转换为原始数据类型,得到目标栅格数据,并返回该目标栅格数据。
[0092]
可以理解的是,若直接从原栅格地图或者目标栅格地图中查询某一栅格的栅格数据,则需要先执行确定该栅格所在行的步骤,再执行从确定该栅格所在列的操作,从而读取所需的目标栅格数据。由此,相较于原始查询方式,本实现方式中从编码数据中确定待查询的目标行(或目标列)的操作并不会降低查询效率。此外,由于待压缩栅格地图中未选取过多无用区域,故编码数据中各行(或列)的数据量很小,因此从目标行(或目标列)中确定目标二元组并从中读取目标栅格数据的操作,也不会导致查询效率的降低。由此,基于游程长度编码得到的编码数据进行栅格数据查询,能够保证栅格数据的查询效率。
[0093]
进一步参考图5,作为对上述各图所示方法的实现,本技术提供了一种栅格地图处理装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用
于服务器、移动机器人等电子设备中。
[0094]
如图5所示,本实施例的栅格地图处理装置500包括:确定单元501,被配置成基于移动机器人的工作轨迹,确定原栅格地图中的目标区域;生成单元502,被配置成基于上述目标区域内的栅格数据,生成目标栅格地图。
[0095]
在本实施例的一些可选的实现方式中,上述确定单元501,进一步被配置成:检测用户在原栅格地图中针对移动机器人的工作轨迹的第一框选操作;将上述第一框选操作所框选出的区域确定为目标区域。
[0096]
在本实施例的一些可选的实现方式中,上述确定单元501,进一步被配置成:确定移动机器人的工作轨迹在原栅格地图中的横坐标最小值、纵坐标最小值、横坐标最大值和纵坐标最大值;基于上述横坐标最小值、上述纵坐标最小值、上述横坐标最大值、上述纵坐标最大值、上述原栅格地图的分辨率以及上述移动机器人中所安装的激光传感器的测量长度,确定上述原栅格地图中的目标区域。
[0097]
在本实施例的一些可选的实现方式中,上述装置还包括第一检测单元,被配置成:检测用户在上述目标区域中针对上述工作轨迹的第二框选操作;将上述目标区域替换为上述第二框选操作所框选出的区域。
[0098]
在本实施例的一些可选的实现方式中,上述装置还包括第二检测单元,被配置成:检测用户在上述目标区域中针对上述工作轨迹以外区域的第三框选操作;将上述第三框选操作所框选出的区域作为非工作区域,将上述非工作区域内的栅格数据设置为初始值。
[0099]
在本实施例的一些可选的实现方式中,上述装置还包括:编码单元,被配置成对上述目标栅格地图进行压缩编码,得到编码数据;存储单元,被配置成将上述编码数据存储于上述移动机器人中。
[0100]
在本实施例的一些可选的实现方式中,上述编码单元,进一步被配置成:将上述目标栅格地图中的栅格数据由原始数据类型转换为目标数据类型,得到待压缩栅格地图;对上述待压缩栅格地图进行压缩编码,得到编码数据。
[0101]
在本实施例的一些可选的实现方式中,上述编码单元,进一步被配置成:按照行数或列数将上述待压缩栅格地图中的栅格数据划分为多个向量;采用游程长度编码方式对上述多个向量进行压缩编码,得到各向量对应的编码数据。
[0102]
在本实施例的一些可选的实现方式中,上述编码单元,进一步被配置成:若上述待压缩栅格地图的行数大于列数,按照列数将上述待压缩栅格地图中的栅格数据划分为多个列向量;若上述待压缩栅格地图的行数小于或等于列数,按照行数将上述待压缩栅格地图中的栅格数据划分为多个行向量。
[0103]
在本实施例的一些可选的实现方式中,上述编码单元,进一步被配置成:若上述多个向量为列向量,对于上述多个向量中的每一个向量,将该向量中首个栅格数据对应的行序和上述首个栅格数据以二元组形式记录;对于该向量中从第二个栅格数据起的每一个栅格数据,若该栅格数据与前一栅格数据不同,将该栅格数据对应的行序和该栅格数据以二元组形式记录;将所记录的二元组汇总,得到该向量对应的编码数据。
[0104]
在本实施例的一些可选的实现方式中,上述编码单元,进一步被配置成:若上述多个向量为行向量,对于上述多个向量中的每一个向量,将该向量中首个栅格数据对应的列序和上述首个栅格数据以二元组形式记录;对于该向量中从第二个栅格数据起的每一个栅
格数据,若该栅格数据与前一栅格数据不同,将该栅格数据对应的列序和该栅格数据以二元组形式记录;将所记录的二元组汇总,得到该向量对应的编码数据。
[0105]
在本实施例的一些可选的实现方式中,上述装置还包括第一查询单元,被配置成:响应于接收到针对目标栅格的栅格数据查询请求,确定上述目标栅格在上述目标栅格地图中的目标坐标;基于上述目标坐标,确定上述编码数据的目标列和索引值;从上述目标列对应的编码数据中查询行序小于或等于上述索引值的最后一个二元组;将上述最后一个二元组中的栅格数据由上述目标数据类型转换为上述原始数据类型,得到目标栅格数据;返回上述目标栅格数据。
[0106]
在本实施例的一些可选的实现方式中,上述装置还包括第二查询单元,被配置成:响应于接收到针对目标栅格的栅格数据查询请求,确定上述目标栅格在上述目标栅格地图中的目标坐标;基于上述目标坐标,确定上述编码数据的目标行和索引值;从上述目标行对应的编码数据中查询列序小于或等于上述索引值的最后一个二元组;将上述最后一个二元组中的栅格数据由上述目标数据类型转换为上述原始数据类型,得到目标栅格数据;返回上述目标栅格数据。
[0107]
本技术的上述实施例提供的装置,通过基于移动机器人的工作轨迹来确定原栅格地图中的目标区域,并基于目标区域内的栅格数据生成目标栅格地图,可使所生成的目标栅格地图在涵盖移动机器人的工作轨迹的同时,去除了大量非必要区域,减少了内存消耗。
[0108]
另外,由于上述处理过程中未降低栅格地图的分辨率,因此不会造成移动机器人定位精度以及导航路径规划性能的降低。同时,由于移动机器人在工作过程中不需要进行地图切换,因此不会造成移动机器人工作效率的下降。由此,可在不失精度且不降低工作效率的前提下,降低栅格地图对移动机器人的内存消耗。
[0109]
进一步参考图6,作为对上述各图所示方法的实现,本技术提供了一种栅格地图处理装置的一个实施例,该装置实施例与图4所示的方法实施例相对应,该装置可以为移动机器人,或该装置可以应用于移动机器人等电子设备中。
[0110]
如图6所示,本实施例的栅格地图处理装置600包括:编码单元601,被配置成响应于获取到目标栅格地图,对上述目标栅格地图进行压缩编码,得到编码数据;存储单元602,被配置成将上述编码数据存储于本地。
[0111]
在本实施例的一些可选的实现方式中,上述编码单元601,进一步被配置成:将上述目标栅格地图中的栅格数据由原始数据类型转换为目标数据类型,得到待压缩栅格地图;对上述待压缩栅格地图进行压缩编码,得到编码数据。
[0112]
在本实施例的一些可选的实现方式中,上述编码单元601,进一步被配置成:按照行数或列数将上述待压缩栅格地图中的栅格数据划分为多个向量;采用游程长度编码方式对上述多个向量进行压缩编码,得到各向量对应的编码数据。
[0113]
在本实施例的一些可选的实现方式中,上述编码单元601,进一步被配置成:若上述待压缩栅格地图的行数大于列数,按照列数将上述待压缩栅格地图中的栅格数据划分为多个列向量;若上述待压缩栅格地图的行数小于或等于列数,按照行数将上述待压缩栅格地图中的栅格数据划分为多个行向量。
[0114]
在本实施例的一些可选的实现方式中,上述编码单元601,进一步被配置成:若上述多个向量为列向量,对于上述多个向量中的每一个向量,将该向量中首个栅格数据对应
的行序和上述首个栅格数据以二元组形式记录;对于该向量中从第二个栅格数据起的每一个栅格数据,该栅格数据与前一栅格数据不同,将该栅格数据对应的行序和该栅格数据以二元组形式记录;将所记录的二元组汇总,得到该向量对应的编码数据;
[0115]
若上述多个向量为行向量,对于上述多个向量中的每一个向量,将该向量中首个栅格数据对应的列序和上述首个栅格数据以二元组形式记录;对于该向量中从第二个栅格数据起的每一个栅格数据,该栅格数据与前一栅格数据不同,将该栅格数据对应的列序和该栅格数据以二元组形式记录;将所记录的二元组汇总,得到该向量对应的编码数据。
[0116]
在本实施例的一些可选的实现方式中,上述装置还包括查询单元,被配置成:响应于接收到针对目标栅格的栅格数据查询请求,确定上述目标栅格在上述目标栅格地图中的目标坐标;若上述多个向量为列向量,基于上述目标坐标,确定上述编码数据的目标列和索引值;从上述目标列对应的编码数据中查询行序小于或等于上述索引值的最后一个二元组;若上述多个向量为行向量,基于上述目标坐标,确定上述编码数据的目标行和索引值;从上述目标行对应的编码数据中查询列序小于或等于上述索引值的最后一个二元组;将上述最后一个二元组中的栅格数据由上述目标数据类型转换为上述原始数据类型,得到目标栅格数据;返回上述目标栅格数据。
[0117]
本技术的上述实施例提供的装置,通过对目标栅格地图进行压缩编码得到编码数据,并将编码数据存储于移动机器人本地,可降低移动机器人内存的消耗。
[0118]
另外,由于上述处理过程中未降低栅格地图的分辨率,因此不会造成移动机器人定位精度以及导航路径规划性能的降低。同时,由于移动机器人在使用编码数据进行工作的过程中不需要进行地图切换,因此不会造成移动机器人工作效率的下降。由此,可在不失精度且不降低工作效率的前提下,降低栅格地图对移动机器人的内存消耗。
[0119]
进一步参考图7,其示出了根据本技术又一个实施例的栅格地图处理系统的系统架构700。如图7所示,栅格地图处理系统可包括服务器701和移动机器人702。
[0120]
在本实施例中,服务器701可用于基于移动机器人的工作轨迹,确定原栅格地图中的目标区域;基于上述目标区域内的栅格数据,生成目标栅格地图;将上述目标栅格数据发送至移动机器人。移动机器人702可用于对上述目标栅格地图进行压缩编码,得到编码数据;将上述编码数据存储于本地。
[0121]
需要说明的是,对上述目标栅格地图进行压缩编码,得到编码数据的步骤,也可由服务器701执行,并由服务器701将所得到的编码数据发送至移动机器人702。此外,服务器701也可以存储编码数据。
[0122]
在本实施例的一些可选的实现方式中,服务器701可进一步用于检测用户在原栅格地图中针对移动机器人的工作轨迹的第一框选操作;将上述第一框选操作所框选出的区域确定为目标区域。
[0123]
在本实施例的一些可选的实现方式中,服务器701可进一步用于确定移动机器人的工作轨迹在原栅格地图中的横坐标最小值、纵坐标最小值、横坐标最大值和纵坐标最大值;基于上述横坐标最小值、上述纵坐标最小值、上述横坐标最大值、上述纵坐标最大值、上述原栅格地图的分辨率以及上述移动机器人中所安装的激光传感器的测量长度,确定上述原栅格地图中的目标区域。
[0124]
在本实施例的一些可选的实现方式中,服务器701可进一步用于在基于上述目标
区域内的栅格数据,生成目标栅格地图之前,检测用户在上述目标区域中针对上述工作轨迹的第二框选操作;将上述目标区域替换为上述第二框选操作所框选出的区域。
[0125]
在本实施例的一些可选的实现方式中,服务器701可进一步用于在基于上述目标区域内的栅格数据,生成目标栅格地图之前,检测用户在上述目标区域中针对上述工作轨迹以外区域的第三框选操作;将上述第三框选操作所框选出的区域作为非工作区域,将上述非工作区域内的栅格数据设置为初始值。
[0126]
在本实施例的一些可选的实现方式中,移动机器人702可进一步用于将上述目标栅格地图中的栅格数据由原始数据类型转换为目标数据类型,得到待压缩栅格地图;对上述待压缩栅格地图进行压缩编码,得到编码数据。
[0127]
在本实施例的一些可选的实现方式中,移动机器人702可进一步用于按照行数或列数将上述待压缩栅格地图中的栅格数据划分为多个向量;采用游程长度编码方式对上述多个向量进行压缩编码,得到各向量对应的编码数据。
[0128]
在本实施例的一些可选的实现方式中,移动机器人702可进一步用于若上述待压缩栅格地图的行数大于列数,按照列数将上述待压缩栅格地图中的栅格数据划分为多个列向量;若上述待压缩栅格地图的行数小于或等于列数,按照行数将上述待压缩栅格地图中的栅格数据划分为多个行向量。
[0129]
在本实施例的一些可选的实现方式中,移动机器人702可进一步用于若上述多个向量为列向量,对于上述多个向量中的每一个向量,将该向量中首个栅格数据对应的行序和上述首个栅格数据以二元组形式记录;对于该向量中从第二个栅格数据起的每一个栅格数据,该栅格数据与前一栅格数据不同,将该栅格数据对应的行序和该栅格数据以二元组形式记录;将所记录的二元组汇总,得到该向量对应的编码数据。
[0130]
在本实施例的一些可选的实现方式中,移动机器人702可进一步用于若上述多个向量为行向量,对于上述多个向量中的每一个向量,将该向量中首个栅格数据对应的列序和上述首个栅格数据以二元组形式记录;对于该向量中从第二个栅格数据起的每一个栅格数据,该栅格数据与前一栅格数据不同,将该栅格数据对应的列序和该栅格数据以二元组形式记录;将所记录的二元组汇总,得到该向量对应的编码数据。
[0131]
在本实施例的一些可选的实现方式中,移动机器人702可进一步用于响应于接收到针对目标栅格的栅格数据查询请求,确定上述目标栅格在上述目标栅格地图中的目标坐标;基于上述目标坐标,确定上述编码数据的目标列和索引值;从上述目标列对应的编码数据中查询行序小于或等于上述索引值的最后一个二元组;将上述最后一个二元组中的栅格数据由上述目标数据类型转换为上述原始数据类型,得到目标栅格数据;返回上述目标栅格数据。
[0132]
在本实施例的一些可选的实现方式中,移动机器人702可进一步用于响应于接收到针对目标栅格的栅格数据查询请求,确定上述目标栅格在上述目标栅格地图中的目标坐标;基于上述目标坐标,确定上述编码数据的目标行和索引值;从上述目标行对应的编码数据中查询列序小于或等于上述索引值的最后一个二元组;将上述最后一个二元组中的栅格数据由上述目标数据类型转换为上述原始数据类型,得到目标栅格数据;返回上述目标栅格数据。
[0133]
本技术的上述实施例提供的系统,通过服务器基于移动机器人的工作轨迹来确定
原栅格地图中的目标区域,并基于目标区域内的栅格数据生成目标栅格地图,可使所生成的目标栅格地图在涵盖移动机器人的工作轨迹的同时,去除了大量非必要区域,减少了内存消耗。另外,通过移动机器人对目标栅格地图进行压缩编码得到编码数据,使移动机器人存储编码数据,可进一步降低移动机器人内存的消耗。由于上述处理过程中未降低栅格地图的分辨率,因此不会造成移动机器人定位精度以及导航路径规划性能的降低。同时,由于移动机器人在使用编码数据进行工作的过程中不需要进行地图切换,因此不会造成移动机器人工作效率的下降。由此,可在不失精度且不降低工作效率的前提下,降低栅格地图对移动机器人的内存消耗。
[0134]
下面参考图8,其示出了用于实现本技术的一些实施例的电子设备的结构示意图。图8示出的电子设备仅仅是一个示例,不应对本技术的实施例的功能和使用范围带来任何限制。
[0135]
如图8所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储装置808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram 803中,还存储有电子设备800操作所需的各种程序和数据。处理装置801、rom 802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
[0136]
通常,以下装置可以连接至i/o接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置807;包括例如磁盘、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许电子设备800与其他设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图8中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
[0137]
特别地,根据本技术的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置809从网络上被下载和安装,或者从存储装置808被安装,或者从rom 802被安装。在该计算机程序被处理装置801执行时,执行本技术的一些实施例的方法中限定的上述功能。
[0138]
需要说明的是,本技术的一些实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据
信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0139]
在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transferprotocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
[0140]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:基于移动机器人的工作轨迹,确定原栅格地图中的目标区域;基于目标区域内的栅格数据,生成目标栅格地图。或者,使得该电子设备:响应于获取到目标栅格地图,对目标栅格地图进行压缩编码,得到编码数据;将编码数据存储于移动机器人中。
[0141]
可以以一种或多种程序设计语言或其组合来编写用于执行本技术的一些实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c ;还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接),上述网络包括局域网(lan)或广域网(wan)。
[0142]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0143]
描述于本技术的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一确定单元、第二确定单元、选取单元和第三确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
[0144]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专
用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0145]
以上描述仅为本技术的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献