CN114299192A - 定位建图的方法、装置、设备和介质 - Google Patents
定位建图的方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN114299192A CN114299192A CN202111591990.7A CN202111591990A CN114299192A CN 114299192 A CN114299192 A CN 114299192A CN 202111591990 A CN202111591990 A CN 202111591990A CN 114299192 A CN114299192 A CN 114299192A
- Authority
- CN
- China
- Prior art keywords
- sub
- pose
- current frame
- graph
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了一种定位建图的方法、装置、设备和介质,涉及计算机技术领域和机器人领域,具体涉及定位建图技术。该方法包括:基于当前帧的扫描数据和第一子图的匹配结果以及第一子图的位姿,确定当前帧的第一预估位姿,第一子图包括共视帧的扫描数据;将当前帧的扫描数据加入第一子图;在第一预估位姿周围确定多个候选位姿;基于每一个候选位姿和每一个第二子图的位姿,将当前帧的扫描数据和该第二子图进行匹配,以确定每一个候选位姿在该第二子图的得分,并确定与该第二子图对应的当前帧的第二预估位姿;响应于确定满足预设条件,在至少一个第二预估位姿中确定第三预估位姿;基于第三预估位姿,更新第一子图中的当前帧的扫描数据。
Description
技术领域
本公开涉及计算机技术领域和机器人领域,具体涉及定位建图技术,特别涉及一种定位建图的方法、定位建图装置、电子设备、计算机可读存储介质和计算机程序产品。
背景技术
在激光SLAM(simultaneous localization and mapping,同步定位与建图)系统中,当前帧的位姿估计是依赖于当前帧与当前子图的匹配结果,或是在先帧的位姿估计。这样的估计方式会产生误差,因此需要进行进一步的位姿准确性检测和误差修正。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
本公开提供了一种定位建图的方法、定位建图的装置、电子设备、计算机可读存储介质和计算机程序产品。
根据本公开的一方面,提供了一种定位建图的方法,包括:至少基于当前帧的扫描数据和第一子图的匹配结果以及第一子图的位姿,确定当前帧的第一预估位姿,其中,第一子图包括与当前帧视角相同的至少一个在先帧的扫描数据,第一预估位姿和第一子图的位姿共同指示当前帧的扫描数据的坐标系和第一子图的坐标系之间的映射关系,第一子图的位姿是基于至少一个在先帧的位姿所确定的;基于第一预估位姿和第一子图的位姿,将当前帧的扫描数据加入第一子图;在第一预估位姿周围的预设范围内确定多个候选位姿;针对至少一个第二子图中的每一个第二子图:基于多个候选位姿中的每一个候选位姿和该第二子图的位姿,将当前帧的扫描数据和该第二子图进行匹配,以确定多个候选位姿在该第二子图的得分;以及基于多个候选位姿在该第二子图的得分,在多个候选位姿中确定与该第二子图对应的当前帧的第二预估位姿;响应于确定与至少一个第二子图对应的当前帧的至少一个第二预估位姿各自在对应的第二子图的得分满足预设条件,在当前帧的至少一个第二预估位姿中确定当前帧的第三预估位姿;以及基于当前帧的第三预估位姿,更新第一子图中的当前帧的扫描数据。
根据本公开的另一方面,提供了一种定位建图的装置,包括:第一确定单元,被配置为至少基于当前帧的扫描数据和第一子图的匹配结果以及第一子图的位姿,确定当前帧的第一预估位姿,其中,第一子图包括与当前帧视角相同的至少一个在先帧的扫描数据,第一预估位姿和第一子图的位姿共同指示当前帧的扫描数据的坐标系和第一子图的坐标系之间的映射关系,第一子图的位姿是基于至少一个在先帧的位姿所确定的;融合单元,被配置为基于第一预估位姿和第一子图的位姿,将当前帧的扫描数据加入第一子图;第二确定单元,被配置为在第一预估位姿周围的预设范围内,确定多个候选位姿;第三确定单元,被配置为针对至少一个第二子图中的每一个第二子图:基于多个候选位姿中的每一个候选位姿和该第二子图的位姿,将当前帧的扫描数据和该第二子图进行匹配,以确定多个候选位姿在该第二子图的得分;以及基于多个候选位姿在该第二子图的得分,在多个候选位姿中确定该第二子图的第二预估位姿;第四确定单元,被配置为响应于确定至少一个第二子图各自的至少一个第二预估位姿在对应的第二子图的得分满足预设条件,在至少一个第二预估位姿中确定第三预估位姿;以及更新单元,被配置为基于第三预估位姿,更新第一子图中的当前帧的扫描数据。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,这些指令被至少一个处理器执行,以使至少一个处理器能够执行上述方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,计算机程序在被处理器执行时实现上述方法。
根据本公开的一个或多个实施例,通过将当前帧的扫描数据和由与当前帧共视角的在先帧的扫描数据构成的第一子图进行匹配,以基于第一子图的位姿得到对当前帧的粗略的位姿估计结果,进而基于该结果将扫描数据和至少一个第二子图进行进一步匹配,以得到准确的位姿估计结果,并基于该结果将扫描数据融入第一子图中,实现了快速定位与建图。该方法能够应用于算力相对较弱的小型平台,并且能够满足输出需求。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据本公开示例性实施例的定位建图的方法的流程图;
图2示出了根据本公开示例性实施例的定位建图的方法的流程图;
图3示出了根据本公开示例性实施例的定位建图的装置的结构框图;以及
图4出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
相关技术中,在回环检测环节需要在当前帧的扫描数据(scan)和所有子图(submap)之间进行位姿约束求解,并且需要在当前submap和所有submap之间进行位姿约束的计算,对算力的消耗较大。
在一个示例中,在体积小一点、算力弱一点的算力平台下,例如CPU为intel i5@1.7GHz的工控机,其SLAM建图定位效果不仅有明显的延时以及待处理任务的堆积,而且建图定位结果由于数据流的未及时处理而导致其整体有变形、建图尺度有误差,甚至局部建图效果有严重的重影。在此水平的算力平台下,目前该建图定位精度以及实时性无法满足机器人的定位导航精度要求,即无法作为先验的地图定位信息作为机器人自主运动的判断依据;不管是从成本角度,还是从机器人的整机集成看,均希望算法可在体积更小、成本更低的平台下进行运行,并且满足算法的输出要求。
为解决上述问题,本公开通过将当前帧的扫描数据和由与当前帧共视角的在先帧的扫描数据构成的第一子图进行匹配,以基于第一子图的位姿得到对当前帧的粗略的位姿估计结果,进而基于该结果将扫描数据和至少一个第二子图进行进一步匹配,以得到准确的位姿估计结果,并基于该结果将扫描数据融入第一子图中,实现了快速定位与建图。该方法能够应用于算力相对较弱的小型平台,并且能够满足输出需求。
下面将结合附图详细描述本公开的实施例。
根据本公开的一方面,提供了一种定位建图的方法。如图1所示,该方法包括:步骤S101、至少基于当前帧的扫描数据和第一子图的匹配结果,确定当前帧的第一预估位姿,其中,第一子图包括与当前帧视角相同的至少一个在先帧的扫描数据;步骤S102、根据第一预估位姿,将当前帧的扫描数据加入第一子图;步骤S103、基于第一预估位姿,确定多个候选位姿;步骤S104、针对至少一个第二子图中的每一个第二子图,根据多个候选位姿中的每一个候选位姿,将当前帧的扫描数据和该第二子图进行匹配,以确定多个候选位姿在该第二子图的得分;步骤S105、针对每一个第二子图,基于多个候选位姿在该第二子图的得分,在多个候选位姿中确定与该第二子图对应的当前帧的第二预估位姿;步骤S106、响应于确定与至少一个第二子图对应的当前帧的至少一个第二预估位姿各自在对应的第二子图的得分满足预设条件,在当前帧的至少一个第二预估位姿中确定当前帧的第三预估位姿;以及步骤S107、基于当前帧的第三预估位姿,更新第一子图。
由此,通过将当前帧的扫描数据和由与当前帧共视角的在先帧的扫描数据构成的第一子图进行匹配,以基于第一子图的位姿得到对当前帧的粗略的位姿估计结果,进而基于该结果将扫描数据和至少一个第二子图进行进一步匹配,以得到准确的位姿估计结果,并基于该结果将扫描数据融入第一子图中,实现了快速定位与建图。该方法能够应用于算力相对较弱的小型平台,并且能够满足输出需求。
运行上述定位建图的方法的平台例如可以为内置于如机器人等电子设备上的平台。该平台可以从数据输入源的接口接收数据流。数据流中的数据可以包括由激光传感器实时采集的每一帧的原始点云数据,这些原始点云数据经处理可以得到扫描数据。对原始点云数据的处理将在下文进行介绍。
根据一些实施例,数据流中的数据还可以包括其他传感器采集的数据,例如可以包括由轮式里程计采集的轮式里程计数据、由惯性测量单元(Inertial MeasurementUnit,IMU)采集的IMU数据。如图2所示,定位建图的方法还可以包括步骤S201、获取当前帧的其他数据。可以理解的是,图2中的步骤S202-S204、S206-S209的操作与图1中的步骤S101-S107的操作类似,在此不做赘述。
上述轮式里程计数据、惯性测量单元数据等可以用于对当前帧的位姿进行初步估计。使用这些数据预估的位姿在较短时间内具有相对较高的置信度,但长时间使用会产生较大的误差累计,因此可以使用当前帧的扫描数据和在先帧的扫描数据进行匹配,并根据匹配结果对粗略预估的位姿进行修正,以得到准确的位姿估计。可以理解的是,在先帧可以为时间上在当前帧之前采集到的帧。在先帧可以为在当前帧之前且与当前帧相邻的一个或多个帧,也可以是在当前帧之前且与当前帧不相邻(即,与当前帧之间间隔了至少一帧)的一个或多个帧,在此不做限定。
根据一些实施例,可以使用SLAM前端对输入的数据流进行处理。在一些实施例中,可以对原始点云数据进行体素滤波以得到扫描数据。通过使用体素滤波的方式,能够降低点云的数量,降低后续扫描数据和子图进行匹配时所消耗的算力和用时。对于其他轮式里程计数据、IMU数据等其他数据,可以根据这些数据进行位姿的增量更新,以得到初始待匹配位姿。
根据一些实施例,位姿可以包括多个位姿分量,例如可以包括第一方向(x方向)的位置分量、第二方向(y方向)的位置分量、以及偏航角(yaw)分量中的至少一个。帧的位姿能够指示电子设备在获取该帧时的位置和朝向等信息。换句话说,帧的位姿能够指示该帧的扫描数据的坐标系与绝对坐标系之间的映射关系。
根据一些实施例,第一子图可以是当前正在构建的子图。第一子图所包括的至少一个在先帧可以为与当前帧视角相同的帧,即共视帧,以使得第一子图中的所有帧的视角基本相同。通过使用共视帧构建子图,可以保证子图中各个帧的场景之间的差异较小,从而降低误差。在一些实施例中,本方案中的子图(包括第一子图、第二子图以及其他子图)可以为栅格地图,以便于进行匹配。
第一子图的位姿可以是根据这些在先帧的位姿所确定的,从而使得第一子图的位姿能够指示第一子图所包括的至少一个在先帧的扫描数据的坐标系(这些在先帧的扫描数据在加入第一子图时会转换到第一子图的坐标系,而第一子图的坐标系也可能会因为扫描数据的加入而调整)与绝对坐标系之间的映射关系。
步骤S202,可以基于当前帧的初始待匹配位姿和第一子图的位姿,将当前帧的扫描数据和第一子图进行匹配,以确定当前帧的第一预估位姿。类似地,第一预估位姿能够指示该帧的扫描数据的坐标系与绝对坐标系之间的映射关系,因此,第一预估位姿和第一子图的位姿能够共同指示当前帧的扫描数据的坐标系和第一子图的坐标系之间的映射关系。在一些实施例中,可以将初始待匹配位姿直接作为第一预估位姿,也可以以初始待匹配位姿作为中心,在预设范围内进行搜索,以确定第一预估位姿,在此不做限定。
在步骤S203、基于第一预估位姿和第一子图的位姿,将当前帧的扫描数据加入第一子图例如可以为,将当前帧的扫描数据以第一预估位姿所指示的x坐标、y坐标、以及偏航角加入到第一子图中。由此,可以基于当前帧的扫描数据对第一子图进行更新,并且可以进一步使用SLAM后端处理更新后的第一子图。
在步骤S204、在SLAM后端处理时,可以先在第一预估位姿周围的预设范围内确定多个候选位姿。可以理解的是,本领域技术人员可以根据对算力、精确度的需求自行确定预设范围的大小,在此不做限定。
根据一些实施例,步骤S204、在第一预估位姿周围的预设范围内,确定多个候选位姿可以包括:针对多个位姿分量中的每一个位姿分量,在预设范围内确定多个候选值;以及将多个位姿分量各自的多个候选值进行组合,以得到多个候选位姿。进一步地,在预设范围内确定多个候选值可以包括确定该分量的浮动偏移量以及浮动步长,进而根据这两个参数确定若干个候选值。由此,能够在消耗算力较小的情况下,在一定范围内选取多个候选位姿进行匹配,保证了准确率。
根据一些实施例,如图2所示,该方法还可以包括:步骤S205、基于第一预估位姿和多个子图各自的位姿,在多个子图中确定至少一个第二子图。由此,通过基于当前帧的第一预估位姿和多个子图的位姿在所有子图中确定至少一个第二子图,可以缩小需要进行匹配的第二子图的数量,从而降低对算力的需求和消耗。
多个子图可以包括电子设备先前生成过的所有子图,也可以包括当前正在生成的子图(即,第一子图),还可以包括预先导入到电子设备中的子图,在此不做限定。
根据一些实施例,第一预估位姿和至少一个第二子图中的每一个第二子图的位姿的差异均小于第一阈值。由此,通过将与当前帧的位姿之间的差异小于第一阈值的子图作为第二子图,使得与第一预估位姿相差较远的子图被过滤掉,而由于这些子图能够提供的约束非常有限,因此这样的过滤对最终得到的预估位姿的准确率影响很低,并且能够显著降低计算量,确保能够定位建图的方法能够实时运行。可以理解的是,本领域技术人员可以根据对算力和准确度的需求设置相应的第一阈值,在此不做限定。
本领域技术人员也可以使用其他方式基于当前帧的第一预估位姿和多个子图的位姿确定第二子图。在一个示例中,累计误差主要是由于电子设备的轮子打滑而导致轮式里程计产生误差造成的,因此也可以将当前帧的偏航角方向的前方或后方的若干个子图作为第二子图。
根据一些实施例,在确定了多个候选位姿和用于进行匹配的多个子图后,可以基于每一个候选位姿将当前帧的扫描数据和第二子图进行匹配。在一些实施例中,该匹配过程使用具有大于第二阈值的分辨率的高精度的数据。在一个示例性实施例中,第二阈值为0.01cm。
现有技术中为解决输入数据不准确、输入源少的问题,采用了低分辨率大搜索范围的方式,并且使用当前正在生成的第一子图与历史生成的第二子图进行匹配,以基于更丰富的约束条件进行位姿估计。而这样的方式在本公开的场景中是不适用的。而本公开通过使用高精度的扫描数据和子图数据,并将扫描数据与小范围内的子图进行搜索,使得能够在消耗较少的算力的情况下获得准确的结果。
在步骤S206、针对每一个第二子图,可以基于每一个候选位姿将当前帧的扫描数据与该第二子图进行匹配,以得到针对每一个候选位姿的得分。
根据一些实施例,步骤S207、针对每一个第二子图,基于多个候选位姿在该第二子图的得分,在多个候选位姿中确定与该第二子图对应的当前帧的第二预估位姿可以包括:将多个候选位姿中在该第二子图中得分最高的候选位姿确定为该第二子图的第二预估位姿。
由此,通过步骤S206和步骤S207,可以得到针对每一个第二子图的最佳的第二预估位姿,进而可以根据这些第二预估位姿的得分判断是否需要更新第一子图。
根据一些实施例,针对每一个第二子图确定多个候选位姿的得分是串行执行的。现有技术中由于需要在大范围进行搜索,因此使用了线程池的方式处理第一子图对第二子图的匹配。而线程池本身是非常消耗算力的,并且会产生任务堆积的问题。此外,在低算力下使用线程池时,数据流的未及时处理可能会导致其整体有变形、建图尺度有误差,甚至局部建图效果有严重的重影。而本公开通过使用串行的方式确定每一个候选位姿在每一个第二子图的得分,并在整个流程处理结束后再对下一帧进行处理,不仅能保证计算的实时性,而且能够去除线程池本身所带来算力的消耗。
根据一些实施例,预设条件指示至少一个第二预估位姿中的至少其一在对应的第二子图中的得分大于第三阈值。也就是说,在至少一个第二预估位姿中,至少有一个第二预估位姿在对应的第二子图中的得分大于第三阈值。步骤S208、在当前帧的至少一个第二预估位姿中确定当前帧的第三预估位姿可以包括:将至少一个第二预估位姿中在对应的第二子图中的得分最高的第二预估位姿确定为第三预估位姿。由此,在确定这些第二预估位姿的准确度可能比第一预估位姿更优时,在这些第二预估位姿中确定最优的第三预估位姿,以实现对当前帧的位姿的准确估计,并可以修正第一子图。
根据一些实施例,响应于检测到上述预设条件未满足时,可以将第一预估位姿作为当前帧的最终位姿估计结果。
在步骤S209、基于第三预估位姿,更新第一子图中的当前帧的扫描数据可以包括:基于第三预估位姿,对第一子图中的当前帧的扫描数据进行回环优化。在一些实施例中,可以采用任意现有的回环优化算法对第一子图中的当前帧的扫描数据进行回环优化,以得到更准确的第一子图。
在执行完步骤S209后,可以进行下一轮的数据收集、定位、建图等环节。在检测到下一帧的视角与第一子图不同时,可以将第一子图完成,并将其确定为第二子图,进而可以从该下一帧开始创建新的第一子图。
根据本公开的另一方面,公开了一种定位建图的装置。如图3所示,装置300包括:第一确定单元310,被配置为至少基于当前帧的扫描数据和第一子图的匹配结果以及第一子图的位姿,确定当前帧的第一预估位姿,其中,第一子图包括与当前帧视角相同的至少一个在先帧的扫描数据,第一预估位姿和第一子图的位姿共同指示当前帧的扫描数据的坐标系和第一子图的坐标系之间的映射关系,第一子图的位姿是基于至少一个在先帧的位姿所确定的;融合单元320,被配置为基于第一预估位姿和第一子图的位姿,将当前帧的扫描数据加入第一子图;第二确定单元330,被配置为在第一预估位姿周围的预设范围内,确定多个候选位姿;第三确定单元340,被配置为针对至少一个第二子图中的每一个第二子图:基于多个候选位姿中的每一个候选位姿和该第二子图的位姿,将当前帧的扫描数据和该第二子图进行匹配,以确定多个候选位姿在该第二子图的得分;以及基于多个候选位姿在该第二子图的得分,在多个候选位姿中确定该第二子图的第二预估位姿;第四确定单元350,被配置为响应于确定至少一个第二子图各自的至少一个第二预估位姿在对应的第二子图的得分满足预设条件,在至少一个第二预估位姿中确定第三预估位姿;以及更新单元360,被配置为基于第三预估位姿,更新第一子图中的当前帧的扫描数据。
可以理解的是,装置300中的单元310-330、350-360的操作和效果分别与图1中的步骤S101-S103、S106-S107的操作和效果类似,单元340的操作与步骤S104-S105的操作类似,在此不做赘述。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
参考图4,现将描述可以作为本公开的服务器或客户端的电子设备400的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406、输出单元407、存储单元408以及通信单元409。输入单元406可以是能向设备400输入信息的任何类型的设备,输入单元406可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元407可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元408可以包括但不限于磁盘、光盘。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习网络算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如定位建图方法。例如,在一些实施例中,定位建图方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的定位建图方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行定位建图方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
Claims (17)
1.一种定位建图的方法,包括:
至少基于当前帧的扫描数据和第一子图的匹配结果以及第一子图的位姿,确定所述当前帧的第一预估位姿,其中,所述第一子图包括与所述当前帧视角相同的至少一个在先帧的扫描数据,所述第一预估位姿和所述第一子图的位姿共同指示所述当前帧的扫描数据的坐标系和所述第一子图的坐标系之间的映射关系,所述第一子图的位姿是基于所述至少一个在先帧的位姿所确定的;
基于所述第一预估位姿和所述第一子图的位姿,将所述当前帧的扫描数据加入所述第一子图;
在所述第一预估位姿周围的预设范围内确定多个候选位姿;
针对至少一个第二子图中的每一个第二子图:
基于所述多个候选位姿中的每一个候选位姿和该第二子图的位姿,将所述当前帧的扫描数据和该第二子图进行匹配,以确定多个候选位姿在该第二子图的得分;以及
基于所述多个候选位姿在该第二子图的得分,在所述多个候选位姿中确定与该第二子图对应的所述当前帧的第二预估位姿;
响应于确定与所述至少一个第二子图对应的所述当前帧的至少一个第二预估位姿各自在对应的第二子图的得分满足预设条件,在所述当前帧的至少一个第二预估位姿中确定所述当前帧的第三预估位姿;以及
基于所述当前帧的第三预估位姿,更新所述第一子图中的所述当前帧的扫描数据。
2.如权利要求1所述的方法,还包括:
基于所述第一预估位姿和多个子图各自的位姿,在所述多个子图中确定所述至少一个第二子图。
3.如权利要求2所述的方法,其中,所述第一预估位姿和所述至少一个第二子图中的每一个第二子图的位姿的差异均小于第一阈值。
4.如权利要求1-3中任一项所述的方法,其中,将所述当前帧的扫描数据和该第二子图进行匹配时,所述当前帧的扫描数据和该第二子图的分辨率大于第二阈值。
5.如权利要求1-4中任一项所述的方法,其中,所述第一预估位姿包括多个位姿分量,
其中,所述在所述第一预估位姿周围的预设范围内,确定多个候选位姿包括:
针对所述多个位姿分量中的每一个位姿分量,在所述预设范围内确定多个候选值;以及
将所述多个位姿分量各自的多个候选值进行组合,以得到所述多个候选位姿。
6.如权利要求5所述的方法,其中,所述多个位姿分量包括第一方向位置分量、第二方向位置分量、以及偏航角分量中的至少一个。
7.如权利要求1-6中任一项所述的方法,还包括:
获取所述当前帧的其他数据,所述其他数据包括轮式里程计数据和惯性测量单元数据中的至少一个,
其中,所述至少基于当前帧的扫描数据和第一子图的匹配结果以及第一子图的位姿,确定所述当前帧的第一预估位姿包括:
基于所述当前帧的扫描数据和第一子图的匹配结果、所述第一子图的位姿、以及所述当前帧的其他数据,确定所述当前帧的第一预估位姿。
8.如权利要求1-7中任一项所述的方法,其中,所述预设条件指示所述至少一个第二预估位姿中的至少其一在对应的第二子图中的得分大于第三阈值,
其中,所述在所述至少一个第二预估位姿中确定第三预估位姿包括:
将所述至少一个第二预估位姿中在对应的第二子图中的得分最高的第二预估位姿确定为所述第三预估位姿。
9.如权利要求1-8中任一项所述的方法,其中,所述基于所述多个候选位姿在该第二子图的得分,在所述多个候选位姿中确定该第二子图的第二预估位姿包括:
将所述多个候选位姿中在该第二子图中得分最高的候选位姿确定为该第二子图的第二预估位姿。
10.如权利要求1-9中任一项所述的方法,其中,所述基于所述第三预估位姿,更新所述第一子图中的所述当前帧的扫描数据包括:
基于所述第三预估位姿,对所述第一子图中的所述当前帧的扫描数据进行回环优化。
11.如权利要求1-10中任一项所述的方法,其中,针对所述每一个第二子图确定所述多个候选位姿的得分是串行执行的。
12.如权利要求1-11中任一项所述的方法,其中,所述扫描数据是对利用激光传感器获取的原始点云数据进行体素滤波而得到的。
13.如权利要求1-12中任一项所述的方法,其中,所述第一子图和所述第二子图均为栅格地图。
14.一种定位建图的装置,包括:
第一确定单元,被配置为至少基于当前帧的扫描数据和第一子图的匹配结果以及第一子图的位姿,确定所述当前帧的第一预估位姿,其中,所述第一子图包括与所述当前帧视角相同的至少一个在先帧的扫描数据,所述第一预估位姿和所述第一子图的位姿共同指示所述当前帧的扫描数据的坐标系和所述第一子图的坐标系之间的映射关系,所述第一子图的位姿是基于所述至少一个在先帧的位姿所确定的;
融合单元,被配置为基于所述第一预估位姿和所述第一子图的位姿,将所述当前帧的扫描数据加入所述第一子图;
第二确定单元,被配置为在所述第一预估位姿周围的预设范围内,确定多个候选位姿;
第三确定单元,被配置为针对至少一个第二子图中的每一个第二子图:
基于所述多个候选位姿中的每一个候选位姿和该第二子图的位姿,将所述当前帧的扫描数据和该第二子图进行匹配,以确定多个候选位姿在该第二子图的得分;以及
基于所述多个候选位姿在该第二子图的得分,在所述多个候选位姿中确定该第二子图的第二预估位姿;
第四确定单元,被配置为响应于确定所述至少一个第二子图各自的至少一个第二预估位姿在对应的第二子图的得分满足预设条件,在所述至少一个第二预估位姿中确定第三预估位姿;以及
更新单元,被配置为基于所述第三预估位姿,更新所述第一子图中的所述当前帧的扫描数据。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-13中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-13中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现权利要求1-13中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111591990.7A CN114299192B (zh) | 2021-12-23 | 2021-12-23 | 定位建图的方法、装置、设备和介质 |
US18/069,856 US20230123671A1 (en) | 2021-12-23 | 2022-12-21 | Localization and mapping |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111591990.7A CN114299192B (zh) | 2021-12-23 | 2021-12-23 | 定位建图的方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114299192A true CN114299192A (zh) | 2022-04-08 |
CN114299192B CN114299192B (zh) | 2022-12-27 |
Family
ID=80968849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111591990.7A Active CN114299192B (zh) | 2021-12-23 | 2021-12-23 | 定位建图的方法、装置、设备和介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230123671A1 (zh) |
CN (1) | CN114299192B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117499547A (zh) * | 2023-12-29 | 2024-02-02 | 先临三维科技股份有限公司 | 自动化三维扫描方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150235367A1 (en) * | 2012-09-27 | 2015-08-20 | Metaio Gmbh | Method of determining a position and orientation of a device associated with a capturing device for capturing at least one image |
CN108253958A (zh) * | 2018-01-18 | 2018-07-06 | 亿嘉和科技股份有限公司 | 一种稀疏环境下的机器人实时定位方法 |
CN109556596A (zh) * | 2018-10-19 | 2019-04-02 | 北京极智嘉科技有限公司 | 基于地面纹理图像的导航方法、装置、设备及存储介质 |
CN111551184A (zh) * | 2020-03-27 | 2020-08-18 | 上海大学 | 一种移动机器人slam的地图优化方法及系统 |
CN113137968A (zh) * | 2020-01-16 | 2021-07-20 | 浙江舜宇智能光学技术有限公司 | 基于多传感器融合的重定位方法、重定位装置和电子设备 |
-
2021
- 2021-12-23 CN CN202111591990.7A patent/CN114299192B/zh active Active
-
2022
- 2022-12-21 US US18/069,856 patent/US20230123671A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150235367A1 (en) * | 2012-09-27 | 2015-08-20 | Metaio Gmbh | Method of determining a position and orientation of a device associated with a capturing device for capturing at least one image |
CN108253958A (zh) * | 2018-01-18 | 2018-07-06 | 亿嘉和科技股份有限公司 | 一种稀疏环境下的机器人实时定位方法 |
CN109556596A (zh) * | 2018-10-19 | 2019-04-02 | 北京极智嘉科技有限公司 | 基于地面纹理图像的导航方法、装置、设备及存储介质 |
CN113137968A (zh) * | 2020-01-16 | 2021-07-20 | 浙江舜宇智能光学技术有限公司 | 基于多传感器融合的重定位方法、重定位装置和电子设备 |
CN111551184A (zh) * | 2020-03-27 | 2020-08-18 | 上海大学 | 一种移动机器人slam的地图优化方法及系统 |
Non-Patent Citations (2)
Title |
---|
JOERN REHDER 等: "Global Pose Estimation with Limited GPS and Long Range Visual Odometry", 《IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION》 * |
李志梅 等: "深度相机与2D激光融合的SLAM闭环检测方法研究", 《组合机床与自动化加工技术》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117499547A (zh) * | 2023-12-29 | 2024-02-02 | 先临三维科技股份有限公司 | 自动化三维扫描方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114299192B (zh) | 2022-12-27 |
US20230123671A1 (en) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107748569B (zh) | 用于无人机的运动控制方法、装置及无人机系统 | |
CN110806215B (zh) | 车辆定位的方法、装置、设备及存储介质 | |
CN112668460A (zh) | 目标检测方法、电子设备、路侧设备和云控平台 | |
CN111462029B (zh) | 视觉点云与高精地图融合方法、装置和电子设备 | |
CN111553282A (zh) | 用于检测车辆的方法和装置 | |
JP7214803B2 (ja) | 建築物の測位方法、装置、電子デバイス、記憶媒体、プログラム、及び端末デバイス | |
US20210190505A1 (en) | Indoor location-based service | |
CN115578433B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
KR20220150240A (ko) | 고정밀 지도 구축 방법, 장치 및 전자 기기 | |
CN117232499A (zh) | 多传感器融合的点云地图构建方法、装置、设备及介质 | |
CN114299192B (zh) | 定位建图的方法、装置、设备和介质 | |
CN113610702B (zh) | 一种建图方法、装置、电子设备及存储介质 | |
CN115511779A (zh) | 图像检测方法、装置、电子设备和存储介质 | |
CN113762397B (zh) | 检测模型训练、高精度地图更新方法、设备、介质及产品 | |
CN113219505B (zh) | 用于车路协同隧道场景的采集gps坐标的方法、装置和设备 | |
CN113932796A (zh) | 高精地图车道线生成方法、装置和电子设备 | |
CN115578432B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN114266876B (zh) | 定位方法、视觉地图的生成方法及其装置 | |
CN115773759A (zh) | 自主移动机器人的室内定位方法、装置、设备及存储介质 | |
CN115953414A (zh) | 基于语义分割的低矮障碍物检测方法和自动驾驶车辆 | |
CN115900697A (zh) | 对象运动轨迹信息处理方法、电子设备以及自动驾驶车辆 | |
CN115147561A (zh) | 位姿图生成方法、高精地图生成方法和装置 | |
CN114219907B (zh) | 三维地图生成方法、装置、设备以及存储介质 | |
CN118376229A (zh) | 高精地图更新方法、装置、设备及介质 | |
CN113375667B (zh) | 导航方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |