本申请涉及机器人技术领域,特别涉及一种地图生成方法。本申请同时还设计一种机器人。
背景技术
机器人定位一直是机器人技术研究的重点和难点,也是机器人实现导航的前提,对提高机器人智能化水平具有重要的意义。
slam(simultaneouslocalizationandmapping,同步定位与建图)目前是实现真正全自主移动机器人的关键技术之一。该技术能够使机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,从而实现机器人的自主定位和导航。
slam的实现方式与难度和传感器的形式与安装方式密切相关。传感器分为激光和视觉两大类:
(1)激光雷达(激光slam)
激光雷达是最古老,研究也最多的slam传感器。它们提供机器人本体与周围环境障碍物间的距离信息。常见的激光雷达,例如sick、velodyne还有我们国产的rplidar等,都可以拿来做slam。激光雷达能以很高精度测出机器人周围障碍点的角度和距离,从而很方便地实现slam、避障等功能。
(2)视觉slam
由于cpu、gpu处理速度的增长,使得许多以前被认为无法实时化的视觉算法,得以在10hz以上的速度运行。硬件的提高也促进了视觉slam的发展。
以传感器而论,视觉slam研究主要分为三大类:单目、双目(或多目)、rgbd。
发明人在实现本申请的过程中发现,现有技术通过激光slam技术建立2d地图的时候,得到的信息为地图的二维平面图。在通过视觉slam的稀疏点云建立3d地图时,得到的信息为稀疏的3d点云。然而,将这两种信息与现实世界对应起来,则需要依赖于人来根据想象来对应。如:当通过激光slam扫描过一扇打开的门时,地图上只会现实一段空白,而不是一扇门。
由此可见,如何使机器人在建立地图的时候实现物体的自动标注,成为本领域技术人员亟待解决的技术问题。
技术实现要素:
本申请提供了一种地图生成方法,以应对机器人在建立地图时,可以实现物体的自动标注。
为了达到以上目的,本申请提供了一种地图生成方法,应用于机器人中,其特征在于,所述机器人中设有摄像头以及slam系统,该方法包括:
利用预设的物体模型对所述摄像头采集的物体进行识别;
将所述摄像头获取的所述物体的坐标映射为指定维度的坐标;
根据所述识别结果以及所述坐标对所述slam系统生成的地图进行标注,以生成标注有所述物体的地图。
优选地,在利用预设的物体模型对所述摄像头采集的物体进行识别之前,还包括:
对所述slam系统中所有需要标注的物体进行物体模型训练,以生成与各所述物体对应的物体模型。
优选地,,当所述slam系统为激光slam系统时,所述地图通过所述slam系统采集的激光数据生成,所述指定维度为二维。
优选地,当所述slam系统为视觉slam系统时,所述地图通过所述slam系统通过所述摄像头采集的数据生成,所述指定维度为三维。
优选地,与所述激光slam系统对应的所述摄像头的类型为深度摄像头;
与所述视觉slam系统对应的所述摄像头的类型包括单目摄像头、双目摄像头以及所述深度摄像头。
本申请提供了一种机器人,其特征在于,所述机器人中设有摄像头以及slam系统,该机器人还包括:
识别模块,用于利用预设的物体模型对所述摄像头采集的物体进行识别;
映射模块,用于将所述摄像头获取的所述物体的坐标映射为指定维度的坐标;
标注模块,用于根据所述识别结果以及所述坐标对所述slam系统生成的地图进行标注,以生成标注有所述物体的地图。
优选地,在利用预设的物体模型对所述摄像头采集的物体进行识别之前,还包括:
模型训练模块,用于对所述slam系统中所有需要标注的物体进行物体模型训练,以生成与各所述物体对应的物体模型。
优选地,当所述slam系统为激光slam系统时,所述地图通过所述slam系统采集的激光数据生成,所述指定维度为二维。
优选地,当所述slam系统为视觉slam系统时,所述地图通过所述slam系统通过所述摄像头采集的数据生成,所述指定维度为三维。
优选地,与所述激光slam系统对应的所述摄像头的类型为深度摄像头;
与所述视觉slam系统对应的所述摄像头的类型包括单目摄像头、双目摄像头以及所述深度摄像头。
与现有技术相比,本申请实施例所提出的技术方案的有益技术效果包括:
该方法通过利用预设的物体模型对摄像头采集的物体进行识别,将摄像头获取的所述物体的坐标映射为指定维度的坐标,根据所述识别结果以及所述坐标对所述slam系统生成的地图进行标注,以生成标注有所述物体的地图。通过应用本申请实施例所提出的技术方案,可以实现机器人在建立地图时,自动将物体标注在地图上。使得用户可以更加便利的在地图上进行标注,解决了机器人在建立地图无法对物体标注的问题。
附图说明
图1为本申请实施例提供的地图生成的流程示意图;
图2为本申请实施例提供的对需要标注的物体训练的示意图;
图3为本申请实施例一提供的激光slam系统生成地图的流程的示意图;
图4为本申请实施例二提供的视觉slam系统生成地图的流程的示意图;
图5为本申请实施例提供的地图生成的模块架构图。
具体实施方式
正如本申请背景技术所陈述的,在现有技术通过激光slam技术建立2d地图的时候,得到的信息为地图的二维平面图。在通过视觉slam的稀疏点云建立3d地图时,得到的信息为稀疏的3d点云。缺少一种使机器人在建立地图的时对物体的自动标注的方案。
有鉴于背景技术中的问题,本申请提出了一种地图生成方法,该方法可以提供统一的、完备的方法论,实现将机器人在建立地图的时对物体的自动标注,从而清楚直接知道物体究竟是何物,进而解决了对机器人在建立地图的时对物体的自动标注的问题。
如图1所示,为本申请实施例所提出的的一种机器人在建立地图的时对物体的自动标注方法的流程示意图,所述方法应用于机器人中,所述机器中设有摄像头以及slam系统,具体地,该方法包括以下步骤:
s101,利用预设的物体模型对所述摄像头采集的物体进行识别。
在优选实施例中,在利用预设的物体模型对所述摄像头采集的物体进行识别之前,要对所述slam系统中所有需要标注的物体进行物体模型训练,以生成与各所述物体对应的物体模型。
本申请提供了多摄像头的机器人或者slam系统,在机器人身体上安装前摄像头,后摄像头,左摄像头,后摄像头。显然,所描述的摄像头位置只是本申请的一部分实施例,而不是全部的实施例。本申请所提供的摄像头设备为深度摄像头或者单目摄像头、双目摄像头。
对于预先设定的物体模型,是slam系统的激光或是视觉扫描大量的实体物体得到的,slam系统对得到的物体图像信息进行记录和存储。从而可以对所述摄像头采集的物体进行识别。
s102,将所述摄像头获取的所述物体的坐标映射为指定维度的坐标。
其中,对于如何获取所述物体的坐标即slam系统如何生成地图,由于与现有技术的获取生成方式相同,故在此不再做具体阐述;
根据slam的实现方式与难度和传感器的形式与安装方式密切相关(传感器分为激光和视觉两大类),则当所述摄像头获取所述物体的坐标后,
当所述slam系统为激光slam系统时,所述地图通过所述slam系统采集的激光数据生成,所述指定维度为二维,且所述激光slam系统对应的所述摄像头的类型为深度摄像头;或
当所述slam系统为视觉slam系统时,所述地图通过所述slam系统通过所述摄像头采集的数据生成,所述指定维度为三维,且所述视觉slam系统对应的所述摄像头的类型包括单目摄像头、双目摄像头以及所述深度摄像头。
slam系统会根据不同的slam系统(激光/视觉),匹配相应的摄像头,进而生成相应的维度坐标。
s103,根据所述识别结果以及所述坐标对所述slam系统生成的地图进行标注,以生成标注有所述物体的地图。
slam系统将所述识别结果以及所述坐标在所述slam系统生成的地图进行标注,该标注中明确了物体的信息,例如当扫描的是一扇打开的门时,该标注将配合所述的坐标将门的匹配信息标注在所述slam系统生成的地图上,即生成标注有所述物体的地图。
与现有技术相比,本申请实施例所提出的的技术方案的有益技术效果还包括:
本申请实施例公开了一种地图生成方法及机器人,在多摄像头的机器人中,该方法通过利用预设的物体模型对所述摄像头采集的物体进行识别,将所述摄像头获取的所述物体的坐标映射为指定维度的坐标,根据所述识别结果以及所述坐标对所述slam系统生成的地图进行标注,以生成标注有所述物体的地图。通过应用本申请实施例所提出的技术方案,可以实现机器人在建立地图时,自动将需要标注的物体标注在地图上。使得用户可以更加便利的在地图上进行标注,解决了机器人在建立地图的时无法对物体的自动标注的问题。
为了进一步阐述本申请的技术思想,现结合具体的应用场景,对本申请的技术方案进行说明。且根据slam的实现方式与难度和传感器的形式与安装方式密切相关(传感器分为激光和视觉两大类),本申请有两种不同的实施例方案:
实施例1,参见图3,为本申请实施例提供的激光slam的流程示意图,该流程可包括:
s301,机器人分别利用激光扫描和深度摄像头获取激光数据和深度摄像头数据。
其中,激光slam系统,该系统包括中激光对目标物体进行扫描,捕作目标物体的图像信息,机器人将该图像信息记录并生成激光数据;
同时深度摄像头也对目标物体进行扫描,捕作目标物体的图像信息以使生成深度摄像头数据。
本申请中提供了一种深度摄像头,该摄像头有很多不同的方式去实现,例如双摄像头的视差,单个摄像头通过移动在不同角度捕捉同一场景,photometricstereo等等,甚至还有ml的方式重建场景模型,或者通过多次不同距离的对焦计算距离等。
s302,所述激光slam系统获取激光数据,并生成相应的地图。
其中,所述地图可有三种表示方式:栅格表示,几何特征表示以及拓扑图表示,基于激光slam建立的是二维地图,则slam在二维世界中,有三个量,x轴,y轴,和方向角。
s303,利用预设的物体模型对所述深度摄像头采集的数据进行识别。
其中,预设的物体模型是slam系统的激光或是视觉扫描大量的实体物体得到的,slam系统对得到的物体图像信息进行记录和存储。从而物体模型可以对所述摄像头采集的物体进行识别。
s304,根据深度信息坐标映射二维坐标。
s305,结合所述物体模型识别结果在所述激光slam系统生成的地图上再生成有标注的二维地图。
在本实施例中,机器人分别利用激光扫描和深度摄像头获取激光数据和深度摄像头数据,所述激光slam系统获取激光数据,并生成相应的地图,利用预设的物体模型对所述深度摄像头采集的数据进行识别,根据深度信息坐标映射二维坐标,并结合所述物体模型识别结果在所述激光slam系统生成的地图上再生成有标注的二维地图。从而实现了机器人在建立地图时,自动将需要标注的物体标注在地图上。
实施例2,参见图4,为本申请实施例提供的视觉slam的流程示意图,该流程可包括:
s401,机器人分别用单目、双目以及深度摄像头获取数据。
其中,视觉slam系统,该系统包括中所述摄像头对目标物体进行扫描,捕作目标物体的图像信息,机器人将该图像信息记录并生成相应的数据;
本申请中提供了一种视觉slam系统,视觉slam系统分为四个模块(除去传感器数据读取):vo、(视觉里程计visualodometry)后端、建图、回环检测。
s402,所述视觉slam系统获取所述数据,并生成相应的地图。
其中,所述地图可有三种表示方式:栅格表示,几何特征表示以及拓扑图表示,基于视觉slam建立的是三维地图,则在三维世界中,会复杂很多,有6个量,x,y,z,roll(滚转角φ),yaw(偏航角ψ),pitch(俯仰角θ)。
s403,利用预设的物体模型对所述深度摄像头采集的数据进行识别。
其中,预设的物体模型是slam系统的激光或是视觉扫描大量的实体物体得到的,slam系统对得到的物体图像信息进行记录和存储。从而物体模型可以对所述摄像头采集的物体进行识别。
s404,根据深度信息坐标映射三维坐标。
s405,结合所述物体模型识别结果在所述激光slam系统生成的地图上再生成有标注的三维地图。
在本实施例中,机器人分别用单目、双目以及深度摄像头获取数据,所述视觉slam系统获取所述数据,并生成相应的地图,利用预设的物体模型对所述深度摄像头采集的数据进行识别,根据深度信息坐标映射三维坐标,并结合所述物体模型识别结果在所述激光slam系统生成的地图上再生成有标注的三维地图。从而实现了机器人在建立地图时,自动将需要标注的物体标注在地图上。
基于与上述方法同样的发明构思,本申请实施例中还提供了一种机器人,如图5所示,包括:
识别模块52,用于利用预设的物体模型对所述摄像头采集的物体进行识别;
映射模块53,用于将所述摄像头获取的所述物体的坐标映射为指定维度的坐标;
标注模块54,用于根据所述识别结果以及所述坐标对所述slam系统生成的地图进行标注,以生成标注有所述物体的地图。
在优选实施例中,在利用预设的物体模型对所述摄像头采集的物体进行识别之前,还包括:
模型训练模块51,用于对所述slam系统中所有需要标注的物体进行物体模型训练,以生成与各所述物体对应的物体模型。
优选地,当所述slam系统为激光slam系统时,所述地图通过所述slam系统采集的激光数据生成,所述指定维度为二维。
优选地,当所述slam系统为视觉slam系统时,所述地图通过所述slam系统通过所述摄像头采集的数据生成,所述指定维度为三维。
优选地,与所述激光slam系统对应的所述摄像头的类型为深度摄像头;
与所述视觉slam系统对应的所述摄像头的类型包括单目摄像头、双目摄像头以及所述深度摄像头。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。