当前位置: 首页 > 专利查询>吉林大学专利>正文

基于GPU的SLAM控制方法、设备及存储介质技术

技术编号:27974623 阅读:26 留言:0更新日期:2021-04-06 14:08
本申请公开了一种基于GPU的SLAM控制方法、设备及存储介质,该方法包括:对输入的每一帧图像信息进行误差的预测,得到预测值;判断预测值是否小于设定阈值;若是,则在运行SLAM算法的过程中,只启动多个代表性warp,记录代表性warp内所有线程的分支方向,并将记录的分支方向传给与之相邻的warp。这样从根本上解决了branch divergence现象,减少了冗余计算,提升了SLAM的运行速度,且实现了对SLAM误差的精细化控制使其一直保持在可接受的最大误差值之下,并探索了近似计算技术应用于SLAM这种高精度应用的前景和机会。

【技术实现步骤摘要】
基于GPU的SLAM控制方法、设备及存储介质
本专利技术涉及人工智能
,特别是涉及一种基于GPU的SLAM控制方法、设备及存储介质。
技术介绍
同步定位与建图(Simultaneouslocalizationandmapping,SLAM)技术是机器人在未知环境中根据自己的运动状态确定自身位置并构建环境的实时地图。SLAM系统既要实现高精度定位效果,又要保证实时性运行,但是由于SLAM计算量庞大,对硬件平台的算力要求很高,大多数SLAM算法只能在高性能的计算平台(如图形处理器GPU)实时运行而无法在嵌入式平台实现实时性。GPU采用单指令流多线程(SingleInstructionMultipleThread,SIMT)模式运行。流处理器计算单元(streamingmultiprocessor,SM)是GPU的基本控制指令执行单元,每个SM中含有多个线程(thread),GPU在工作时会将SM下的线程组织成多个warp,通常每个warp为32个线程,每个warp内的所有线程执行相同的指令但是每个线程执行的数据流不同。由于SLAM系统中通常会存在较多的分支判断代码,在GPU平台运行这些分支判断代码(如if-else语句或者switch语句)时,执行不同分支路径的线程只能串行执行。这种因不一致分支行为引起的串行执行现象被称为BranchDivergence,它的出现严重影响了GPU的执行效率,降低了程序性能,对SLAM算法运行速度的提升有限。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种基于GPU的SLAM控制方法、设备及存储介质,可以减少冗余计算,提升SLAM算法的运行速度。其具体方案如下:一种基于GPU的SLAM控制方法,包括:对输入的每一帧图像信息进行误差的预测,得到预测值;判断所述预测值是否小于设定阈值;若是,则在运行SLAM算法的过程中,只启动多个代表性warp,记录所述代表性warp内所有线程的分支方向,并将记录的分支方向传给与之相邻的warp。优选地,在本专利技术实施例提供的上述基于GPU的SLAM控制方法中,在只启动具有代表性的warp之前,还包括:在建图之前,对输入的每一帧图像进行目标识别,只保留识别到的物体所占据的像素区域,并将保留的所述像素区域中的像素信息传递至SLAM系统,其余通过判断语句舍弃。优选地,在本专利技术实施例提供的上述基于GPU的SLAM控制方法中,采只启动多个代表性warp的同时,还包括:为代表性warp的每个线程在共享内存中创建一个256位的bool型数组,以容纳由该线程执行的256个体素的分支信息。优选地,在本专利技术实施例提供的上述基于GPU的SLAM控制方法中,在将记录的分支方向传给与之相邻的warp之后,还包括:在建图时,在程序编译期间跳过最后二十到三十次的迭代运算。优选地,在本专利技术实施例提供的上述基于GPU的SLAM控制方法中,在程序编译期间跳过最后二十到三十次的迭代运算之后,还包括:在当前图像帧信息融合进TSDF地图后,在从所述TSDF地图中提取表面信息时,只启动部分线程,并让启动的部分线程正常执行,待执行完毕后将结果拷贝到共享内存中。本专利技术实施例还提供了一种电子设备,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现如本专利技术实施例提供的上述基于GPU的SLAM控制方法。本专利技术实施例还提供了一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如本专利技术实施例提供的上述基于GPU的SLAM控制方法。从上述技术方案可以看出,本专利技术所提供的一种基于GPU的SLAM控制方法,包括:对输入的每一帧图像信息进行误差的预测,得到预测值;判断预测值是否小于设定阈值;若是,则在运行SLAM算法的过程中,只启动多个代表性warp,记录代表性warp内所有线程的分支方向,并将记录的分支方向传给与之相邻的warp。本专利技术从SLAM算法自身或从其在GPU上运行的特点入手,在SLAM或其他应用中通过记录一个warp的分支方向来替代其他warp的分支方向来做近似计算处理,解决了branchdivergence现象,减少了冗余计算,提升了SLAM的运行速度,且实现了对SLAM误差的精细化控制使其一直保持在可接受的最大误差值之下,并探索了近似计算技术应用于SLAM这种高精度应用的前景和机会。此外,本专利技术还针对基于GPU的SLAM控制方法提供了相应的设备及计算机可读存储介质,进一步使得上述方法更具有实用性,该设备及计算机可读存储介质具有相应的优点。附图说明为了更清楚地说明本专利技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的SLAM控制方法的流程图之一;图2为本专利技术实施例提供的SLAM控制方法的流程图之二;图3为本专利技术实施例提供的应用于Integrate核函数的近似计算示意图;图4为本专利技术实施例提供的应用于raycast核函数的近似计算示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提供一种基于GPU的SLAM控制方法,如图1所示,包括以下步骤:S101、对输入的每一帧图像信息进行误差的预测,得到预测值;可以理解的是,由于SLAM系统对定位精度具有很高的要求,SLAM算法自身就会产生一定的误差。为了衡量SLAM算法的精确性,一般要求出计算算法得到的运行轨迹与实际运行轨迹偏差的绝对值,该值也称为平均轨迹误差绝对值(meanabsolutelytrajectoryerror,MeanATE)。近似计算技术(ApproximateComputingTechnique)是一种通过近似计算在目标应用的运算结果保持在可接受范围内的同时实现运算速度显著提升的方法。GPU作为一种重要的SLAM部署平台,在SLAM运行过程中存在大量的近似计算机会,因此本专利技术针对SLAM在GPU上运行的特点设计对应的近似计算方法,这样可以显著的提升SLAM的运行速度,在嵌入式GPU平台这种算力较少的设备上也可以实现实时性。但是如果SLAM算法自身产生的误差超过了规定要求那么就不适合采用近似计算技术,这是因为近似计算会使误差进一步增大。因此在采用近似计算方法之前需要对系统的原始误差做预测;S102、判断预测值是否小于设定阈值;若否,则正常运行SLAM算法;若是,则执行步骤S103;S103、在运行SLAM算本文档来自技高网...

【技术保护点】
1.一种基于GPU的SLAM控制方法,其特征在于,包括:/n对输入的每一帧图像信息进行误差的预测,得到预测值;/n判断所述预测值是否小于设定阈值;/n若是,则在运行SLAM算法的过程中,只启动多个代表性warp,记录所述代表性warp内所有线程的分支方向,并将记录的分支方向传给与之相邻的warp。/n

【技术特征摘要】
1.一种基于GPU的SLAM控制方法,其特征在于,包括:
对输入的每一帧图像信息进行误差的预测,得到预测值;
判断所述预测值是否小于设定阈值;
若是,则在运行SLAM算法的过程中,只启动多个代表性warp,记录所述代表性warp内所有线程的分支方向,并将记录的分支方向传给与之相邻的warp。


2.根据权利要求1所述的基于GPU的SLAM控制方法,其特征在于,在只启动具有代表性的warp之前,还包括:
在建图之前,对输入的每一帧图像进行目标识别,只保留识别到的物体所占据的像素区域,并将保留的所述像素区域中的像素信息传递至SLAM系统,其余通过判断语句舍弃。


3.根据权利要求2所述的基于GPU的SLAM控制方法,其特征在于,只启动多个代表性warp的同时,还包括:
为代表性warp的每个线程在共享内存中创建一个256位的bool型数组,以容纳由该线程执行的256个体素的分支信息。

【专利技术属性】
技术研发人员:阎凯歌卜天聪谭婧炜佳张广新
申请(专利权)人:吉林大学长春工程学院
类型:发明
国别省市:吉林;22

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1