地图存储方法及系统与流程

文档序号:15272031发布日期:2018-08-28 22:33阅读:377来源:国知局

本发明涉及计算机领域,尤其涉及一种地图存储方法及系统。



背景技术:

随着智能移动机器人发展,各种服务类机器人纷纷涌现,譬如扫地机、导游、导购类机器人、咨询机器人等,人们对移动机器人动态的运动能力有了越来越高的期待,使得机器人软件系统设计越来越复杂。为了对移动机器人所处的复杂环境进行建模,出现了各种各样的地图设计和表示。

目前市面上机器人所用地图五花八门,比较常用的有概率栅格地图,来表示平面被障碍物占用的情况;三维点图,用来表示信标或者兴趣点;多边形图,用来表示特定区域。

同一个机器人基于导航的应用,需要不同用途的地图,每一种用途的地图也可能有多重不同的格式,不同格式的地图需要实现不同的数据结构,这样就要求实现多种复杂的读取、传输、存储地图的方式。随着机器人行业技术的发展,会有越来越多的题图格式和类型出现,兼容性问题也将越来越突出。



技术实现要素:

本发明的一个目的是提供一种地图存储方法及系统,能够灵活存储各种类型和用途的地图。

根据本发明的一个方面,提供了一种地图存储方法,该方法包括:

设置多层地图,每一层地图代表一张具体的地图;

设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;

设置每一层地图的地图用途,用于表示地图在软件系统里的用处;

设置每一层地图的地图类型,用于体现地图具体的格式;

设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式。

进一步的,上述方法中,设置所述地图文件之前,还包括设置所述地图文件的格式,包括:

设置地图存放方式为小端模式;

设置地图编码为二进制编码;

设置地图字符串的编码为utf8,不带字节顺序标记;

设置所述地图文件的扩展名为stcm。

进一步的,上述方法中,设置所述地图文件之前,还包括设置所述地图文件的布局,包括:

在文件的开始处设置文件头,在所述文件头之后依次存放地图数据。

进一步的,上述方法中,所述文件头的格式包括:

所述文件头的开始处为字符串stcm;

所述文件头的总大小,包括stcm的签名字符串;

所述文件头的总大小之后依次为当前版本号、支持读取器的最小版本及支持写模块的最小版本、总的地图层数量和所述元数据。

进一步的,上述方法中,所述元数据包括所有元数据条目的数量和各项元数据条目,所述元数据条目则是一对键值对,分别为字符串。

进一步的,上述方法中,设置每一层地图的地图类型,包括:

设置每一层地图的的总大小、对应的元数据和地图二进制主体数据。

根据本发明的另一方面,还提供了一种地图存储系统,该设备包括:

第一设置模块,用于设置多层地图,每一层地图代表一张具体的地图;

第二设置模块,用于设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;

第三设置模块,用于设置每一层地图的地图用途,用于表示地图在软件系统里的用处;

第四设置模块,用于设置每一层地图的地图类型,用于体现地图具体的格式;

第五设置模块,用于设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式。

进一步的,上述设备中,所述第二设置模块,还用于在设置所述地图文件之前,设置所述地图文件的格式,包括:设置地图存放方式为小端模式;设置地图编码为二进制编码;设置地图字符串的编码为utf8,不带字节顺序标记;设置所述地图文件的扩展名为stcm。

进一步的,上述设备中,所述第二设置模块,还用于在设置所述地图文件之前,设置所述地图文件的布局,包括:在文件的开始处设置文件头,在所述文件头之后依次存放地图数据。

进一步的,上述设备中,所述文件头的格式包括:

所述文件头的开始处为字符串stcm;

所述文件头的总大小,包括stcm的签名字符串;

所述文件头的总大小之后依次为当前版本号、支持读取器的最小版本及支持写模块的最小版本、总的地图层数量和所述元数据。

进一步的,上述设备中,所述元数据包括所有元数据条目的数量和各项元数据条目,所述元数据条目则是一对键值对,分别为字符串。

进一步的,上述设备中,第四设置模块,用于设置每一层地图的的总大小、对应的元数据和地图二进制主体数据。

根据本发明的另一面,还提供一种基于计算的设备,其中,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:

设置多层地图,每一层地图代表一张具体的地图;

设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;

设置每一层地图的地图用途,用于表示地图在软件系统里的用处;

设置每一层地图的地图类型,用于体现地图具体的格式;

设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式。

根据本发明的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:

设置多层地图,每一层地图代表一张具体的地图;

设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;

设置每一层地图的地图用途,用于表示地图在软件系统里的用处;

设置每一层地图的地图类型,用于体现地图具体的格式;

设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式。

与现有技术相比,本发明通过设置多层地图,每一层地图代表一张具体的地图;设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;设置每一层地图的地图用途,用于表示地图在软件系统里的用处;设置每一层地图的地图类型,用于体现地图具体的格式,实现采用复合地图,同一文件保存多种地图,采用层次化的结构,提高可扩展性,可以任意增加新的移动机器人导航地图类型和格式,能够灵活存储各种类型和用途的地图,提供了非常好的可扩展性。在保证兼容性的前提下,为未来增加新的地图类型、格式提供了便利性。另外,通过设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式,实现扁平化数据结构,很好的支持键值对数据库。实现为用户提供机制,用户自定义策略来实现复杂的地图组合。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1示出本发明一实施例的复合地图结构图;

图2示出本发明一实施例的总体文件格式图;

图3示出本发明一实施例的文件布局图;

图4示出本发明一实施例的文件头格式图;

图5示出本发明一实施例的元数据格式图;

图6示出本发明一实施例的元数据条目格式图;

图7示出本发明一实施例的地图格式图;

图8示出本发明一实施例的栅格地图元数据图;

图9示出本发明一实施例的线段图元数据图;

图10示出本发明一实施例的线段图主体格式图;

图11示出本发明一实施例的位姿图元数据图;

图12示出本发明一实施例的位姿图主体格式图;

图13示出本发明一实施例的点图元数据图;

图14示出本发明一实施例的点图主体格式图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本发明作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本发明提供一种地图存储方法,包括:

设置多层地图,每一层地图代表一张具体的地图;

设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;

设置每一层地图的地图用途,用于表示地图在软件系统里的用处;

设置每一层地图的地图类型,用于体现地图具体的格式;

设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式。

具体的,图1为复合地图结构图,整体为平铺结构,包含多层地图,每一层地图代表了一张具体的地图,包含的内容包括:

1)地图名字(name),具有唯一性,用来索引和代表地图。

2)地图用途(usage),用来表示地图在软件系统里的用处,是用来导航,或是表示区域语义,或者用来避障,都可以在这一项里体现出来。

3)地图类型(type),表示地图具体实现,以及数据结构,体现地图具体的格式。

元数据(metadata)存储了跟整个地图相关的一些元数据。元数据的主要结构为键值对,可以来做标签、标记和查询。而每一层地图也会有对应的元数据,用来存放地图更详细的信息,比如尺寸大小、色彩深度、图片保存格式等等。由于元数据采用键值对形式,能够提供非常好的可扩展性,用户完全可以自己定义一种新的格式的地图,并且自己实现读写程序来解释元数据里面的内容。

在此,本发明通过设置多层地图,每一层地图代表一张具体的地图;设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;设置每一层地图的地图用途,用于表示地图在软件系统里的用处;设置每一层地图的地图类型,用于体现地图具体的格式,实现采用复合地图,同一文件保存多种地图,采用层次化的结构,提高可扩展性,可以任意增加新的移动机器人导航地图类型和格式,能够灵活存储各种类型和用途的地图,提供了非常好的可扩展性。在保证兼容性的前提下,为未来增加新的地图类型、格式提供了便利性。另外,通过设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式,实现扁平化数据结构,很好的支持键值对数据库。实现为用户提供机制,用户自定义策略来实现复杂的地图组合。

如图2所示,本发明的地图存储方法一实施例中,设置所述地图文件之前,还包括设置所述地图文件的格式,包括:

设置地图存放方式(endian)为小端模式(littleendian);

设置地图编码(encoding)为二进制编码(binary);

设置地图字符串(stringencoding)的编码为utf8,不带字节顺序标记(withoutbom);

设置所述地图文件的扩展名(fileextensionname)为stcm。

本发明的地图存储方法一实施例中,设置所述地图文件之前,还包括设置所述地图文件的布局,包括:

如图3所示,在文件的开始处设置文件头,在所述文件头之后依次存放地图数据。

如图4所示,本发明的地图存储方法一实施例中,所述文件头的格式包括:

所述文件头的开始处为字符串“stcm”,表示这是一个stcm格式的文件;

所述文件头的总大小(headersize),包括“stcm”的签名字符串;

所述文件头的总大小之后依次为当前版本号(fileformatversion)、支持读取器的最小版本(minreaderversion)及支持写模块的最小版本(minwriterversion)、总的地图层数量(section)和元数据(metadata)。

如图5和6所示,本发明的地图存储方法一实施例中,所述元数据包括所有元数据条目的数量(metadataentrycount)和各项元数据条目(metadataentries),所述元数据条目则是一对键值对(key-value-pair),分别为字符串。图6为元数据条目格式图。

本发明的地图存储方法一实施例中,设置每一层地图的地图类型,包括:

图7为地图格式,设置每一层地图的的总大小(sectionsize)、对应的元数据(metadata)和地图二进制主体数据(body)。

图8为地图格式中的一种实现-栅格地图层的元数据,分别为地图左下角的x、y坐标,x方向和y方向的像素点数量,以及x和y方向的分辨率。而栅格地图的主体为字节流。

图9为线段图层的元数据,主要内容为线段的个数。而线段图主体的格式如图10所示,包含线段的名字,线段起止点坐标以及任何元数据。

图11所示为位姿图层的元数据,内容为位姿个数。图12为位姿图层的主体内容,主要包含位姿名字、数个字符串标签、坐标和朝向、标志位以及元数据。

图13和图14分别表示了点图层的元数据和点图层的主体格式。元数据包含点的个数,而主体包含了所有的点对应的识别码、坐标、标签和容错半径。其中,容错半径表示对应的点分布在以该半径为圆圈的范围内。

根据本发明的另一面,还提供一种地图存储设备,其中,该设备包括:

第一设置模块,用于设置多层地图,每一层地图代表一张具体的地图;

第二设置模块,用于设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;

第三设置模块,用于设置每一层地图的地图用途,用于表示地图在软件系统里的用处;

第四设置模块,用于设置每一层地图的地图类型,用于体现地图具体的格式;

第五设置模块,用于设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式。

本发明的地图存储设备一实施例中,所述第二设置模块,还用于在设置所述地图文件之前,设置所述地图文件的格式,包括:设置地图存放方式为小端模式;设置地图编码为二进制编码;设置地图字符串的编码为utf8,不带字节顺序标记;设置所述地图文件的扩展名为stcm。

本发明的地图存储设备一实施例中,所述第二设置模块,还用于在设置所述地图文件之前,设置所述地图文件的布局,包括:在文件的开始处设置文件头,在所述文件头之后依次存放地图数据。

本发明的地图存储设备一实施例中,所述文件头的格式包括:

所述文件头的开始处为字符串stcm;

所述文件头的总大小,包括stcm的签名字符串;

所述文件头的总大小之后依次为当前版本号、支持读取器的最小版本及支持写模块的最小版本、总的地图层数量和所述元数据。

本发明的地图存储设备一实施例中,所述元数据包括所有元数据条目的数量和各项元数据条目,所述元数据条目则是一对键值对,分别为字符串。

本发明的地图存储设备一实施例中,第四设置模块,用于设置每一层地图的的总大小、对应的元数据和地图二进制主体数据。

根据本发明的另一面,还提供一种基于计算的设备,其中,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:

设置多层地图,每一层地图代表一张具体的地图;

设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;

设置每一层地图的地图用途,用于表示地图在软件系统里的用处;

设置每一层地图的地图类型,用于体现地图具体的格式;

设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式。

根据本发明的另一面,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:

设置多层地图,每一层地图代表一张具体的地图;

设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;

设置每一层地图的地图用途,用于表示地图在软件系统里的用处;

设置每一层地图的地图类型,用于体现地图具体的格式;

设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式。

本发明的设备和计算机可读存储介质各实施例的消息内容,具体可参见各方法实施例的对应部分,在此,不再赘述。

综上所述,本发明通过设置多层地图,每一层地图代表一张具体的地图;设置每一层地图的名字和对应的地图文件,其中,每一层地图的名字具有唯一性,用来索引和代表地图;设置每一层地图的地图用途,用于表示地图在软件系统里的用处;设置每一层地图的地图类型,用于体现地图具体的格式,实现采用复合地图,同一文件保存多种地图,采用层次化的结构,提高可扩展性,可以任意增加新的移动机器人导航地图类型和格式,能够灵活存储各种类型和用途的地图,提供了非常好的可扩展性。在保证兼容性的前提下,为未来增加新的地图类型、格式提供了便利性。另外,通过设置元数据,包括设置多层地图对应的元数据和每一层地图对应的元数据,所述元数据采用键值对形式,实现扁平化数据结构,很好的支持键值对数据库。实现为用户提供机制,用户自定义策略来实现复杂的地图组合。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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