CN110956697B - 基于激光slam的内存优化方法、介质、终端和装置 - Google Patents
基于激光slam的内存优化方法、介质、终端和装置 Download PDFInfo
- Publication number
- CN110956697B CN110956697B CN201911329834.6A CN201911329834A CN110956697B CN 110956697 B CN110956697 B CN 110956697B CN 201911329834 A CN201911329834 A CN 201911329834A CN 110956697 B CN110956697 B CN 110956697B
- Authority
- CN
- China
- Prior art keywords
- variable
- cell
- common
- laser beam
- visits
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Computer Graphics (AREA)
- Optical Communication System (AREA)
- Laser Beam Processing (AREA)
Abstract
本发明公开了一种基于激光slam的内存优化方法、介质、终端和装置,方法包括以下步骤:将不同粒子中包含相同地图坐标的多个单元格作为单元格组合,且每个单元格均具有相同的原始共有变量和不同的私有变量;对所有粒子初始化;根据激光束扫描结果改变单元格各个变量的取值,当变量n和变量x,y的取值发生变化时,将变量n和变量x,y由共有变量标记为私有变量;当每个单元格的共有变量均变为私有变量时,释放存储所述原始共有变量的存储空间。本发明在保证运算速度和地图精度的情况下,减少了粒子滤波激光slam构建环境地图时约54.5%‑59%的内存空间,有助于构建大场景地图,具有较强的实际应用意义。
Description
【技术领域】
本发明涉及机器人领域,尤其涉及一种基于激光slam的内存优化方法、介质、终端和装置。
【背景技术】
SLAM(Simultaneous Localization and Mapping)方法是移动机器人定位导航的核心技术,全称为同时定位与建图。SLAM问题可以描述为:机器人在未知环境中从一个未知位置开始移动,在移动过程中根据自身携带的传感器及构建的实时地图,通过slam技术进行实时位姿估计,同时在自身定位的基础上不断更新与扩展地图,逐渐构建环境的完整地图。采用激光雷达实现的称为激光slam,采用摄像头实现的称为视觉slam。激光slam构建地图过程中需要占用大量内存,尤其随着地图分辨率、粒子数量增加或场景面积的增加,需要更大的内存,因此对硬件性能提出了更高的要求,同时严重影响建图时的实时性。具体来说,粒子滤波激光slam算法在构建栅格地图时,每个单元格包含int类型的变量visits与n,以及float类型变量x,y。当单元格被激光束端点击中时,变量x,y累加激光端点障碍物坐标,同时变量visits与n各自增1;当单元格被激光束穿过时只对变量visits自增1。由于栅格地图中大多数单元格被激光束穿过,只有少量单元格被激光束端点击中,大多数单元格的变量只占用了存储空间,但没有描述环境的任何信息,因此大量的内存空间被浪费,尤其当分辨率较高或栅格地图较大时,单元格数量增加,大量的内存空间被占用。有一种改进的减少建图时内存的方法:单元格不包含float类型变量x,y,对应单元格为占用状态时,默认障碍物位置在单元格的几何中心。这是一种粗略的估计障碍物的方法,在建图与匹配时,估计的机器人位姿误差不确定性增大,降低了地图精度。因此,该方法通过降低建图精度来减少slam建图所需内存,而且地图精度受单元格分辨率影响较大。
【发明内容】
本发明提供了一种基于激光slam的内存优化方法、介质、终端和装置,解决了以上所述的技术问题。
本发明解决上述技术问题的技术方案如下:一种基于激光slam的内存优化方法,包括以下步骤:
步骤1,将不同粒子中包含相同地图坐标的多个单元格作为单元格组合,每个单元格组合包含的单元格均具有相同的原始共有变量和不同的私有变量;所述原始共有变量包括变量n和变量(x,y),所述私有变量包括变量visits,其中变量n表示单元格被标记为障碍物的次数,变量(x、y)表示击中单元格的激光束端点所对应障碍物坐标的累加结果,变量visits表示单元格被激光束扫描到的次数;
步骤2,对所有粒子进行初始化,初始化后每个单元格的变量n、变量(x,y)、变量visits均取值为0;
步骤3,根据激光束扫描结果改变单元格变量n、变量(x,y)和变量visits的取值,当变量n和变量(x,y)的取值发生变化时,将变量n和变量(x,y)由共有变量标记为私有变量;
步骤4,当单元格组合中每个单元格的共有变量n和共有变量(x,y)均变为私有变量时,释放存储所述原始共有变量的存储空间。
在一个优选实施方式中,当单元格组合中的任意单元格被激光束穿过时,变量visits增加1,变量n和变量(x,y)保持不变;当单元格组合中的任意单元格被激光束首次击中时,变量n和变量visits均增加1,变量(x、y)变为激光束的激光端点所对应的障碍物坐标,同时将共有变量n和共有变量(x,y)标记为私有变量。
在一个优选实施方式中,所述私有变量还包括变量w,变量w用于表示变量n和变量(x,y)的状态,若变量n和变量(x,y)为共有变量,则变量w为false,若变量n和变量(x,y)为私有变量,则变量w为true;当对所有粒子进行初始化后,每个单元格的变量w均为false;当单元格被激光束首次击中时,变量w由false变为true,即单元格的共有变量n和共有变量(x,y)变为私有变量。
在一个优选实施方式中,变量n和变量visits的数据类型为int,变量(x,y)的数据类型为float。
在一个优选实施方式中,当单元格的共有变量n和共有变量(x,y)变为私有变量后,若单元格被激光束穿过,则变量visits增加1,变量n和变量(x,y)保持不变;若单元格再次被激光束击中,则变量(x,y)累加激光束的激光端点所对应的障碍物坐标,同时变量n和变量visits各自增加1。
本发明实施例的第二方面提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现以上所述的基于激光slam的内存优化方法。
本发明实施例的第三方面提供了一种基于激光slam的内存优化终端,包括所述的计算机可读存储介质和处理器,所述处理器执行所述计算机可读存储介质上的计算机程序时实现以上所述基于激光slam的内存优化方法的步骤。
本发明实施例的第四方面提供了一种基于激光slam的内存优化装置,包括组合模块、初始化模块、数据处理模块和内存优化模块,
所述组合模块用于将不同粒子中包含相同地图坐标的多个单元格作为单元格组合,每个单元格组合包含的单元格均具有相同的原始共有变量和不同的私有变量;所述原始共有变量包括变量n和变量(x,y),所述私有变量包括变量visits,其中变量n表示单元格被标记为障碍物的次数,变量(x、y)表示击中单元格的激光束端点所对应障碍物坐标的累计结果,变量visits表示单元格被激光束扫描到的次数;
所述初始化模块用于对所有粒子进行初始化,初始化后每个单元格的变量n、变量(x,y)、变量visits均取值为0;
所述数据处理模块用于根据激光束扫描结果改变单元格变量n、变量(x,y)和变量visits的取值,当变量n和变量(x,y)的取值发生变化时,将变量n和变量(x,y)由共有变量标记为私有变量;
所述内存优化模块用于当单元格组合中每个单元格的共有变量n和共有变量(x,y)均变为私有变量时,释放存储所述原始共有变量的存储空间。
在一个优选实施方式中,初始化后,当单元格组合中的任意单元格被激光束穿过时,所述数据处理模块将变量visits增加1,变量n和变量(x,y)保持不变;当单元格组合中的任意单元格被激光束首次击中时,所述数据处理模块将变量n和变量visits均增加1,且将变量(x、y)变为激光束的激光端点所对应的障碍物坐标,同时将共有变量n和共有变量(x,y)标记为私有变量。
在一个优选实施方式中,所述私有变量还包括变量w,变量w用于表示变量n和变量(x,y)的状态,若变量n和变量(x,y)为共有变量,则变量w为false,若变量n和变量(x,y)为私有变量,则变量w为true;对所有粒子进行初始化后,所述初始化模块将每个单元格的变量w均设为false;单元格被激光束首次击中时,所述数据处理模块将变量w由false变为true。
本发明提供了一种基于激光slam的内存优化方法、介质、终端和装置,在保证运算速度和地图精度的情况下,减少了粒子滤波激光slam构建环境地图时约54.5%-59%的内存空间,有助于构建大场景地图,具有较强的实际应用意义。
为使发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是实施例1提供的基于激光slam的内存优化方法的流程示意图;
图2是实施例2提供的基于激光slam的内存优化装置的结构示意图;
图3是实施例3提供的基于激光slam的内存优化终端的结构示意图。
【具体实施方式】
为了使本发明的目的、技术方案和有益技术效果更加清晰明白,以下结合附图和具体实施方式,对本发明进行进一步详细说明。应当理解的是,本说明书中描述的具体实施方式仅仅是为了解释本发明,并不是为了限定本发明。
图1是实施例1提供的基于激光slam的内存优化方法的流程示意图,如图1所示,包括以下步骤:
步骤1,将不同粒子中包含相同地图坐标的多个单元格作为单元格组合。具体来说,在采用粒子滤波法进行激光slam时,每个粒子都包含了一张当前正在构建的环境栅格地图,且环境栅格地图的原点是固定的。同时使用多个平行存在的粒子进行环境栅格地图的构建,不同粒子的单元格中可能包含相同地图坐标,因此将不同粒子中包含相同地图坐标的多个单元格作为单元格组合,每个单元格组合包含的单元格均具有相同的原始共有变量和不同的私有变量。所述原始共有变量包括int类型的变量n和float类型的变量(x,y),所述私有变量包括int类型的变量visits,其中变量n表示单元格被标记为障碍物的次数,变量(x、y)表示击中单元格的激光束端点所对应障碍物坐标的累加结果,变量visits表示单元格被激光束扫描到的次数,即单元格组合的多个单元格共享一套float类型成员x,y与int类型成员n,而int类型成员visits为每个单元格私有。
然后执行步骤2对所有粒子进行初始化,初始化后所有粒子维护的地图都不包含环境的任何信息,因此每个单元格的变量n、变量(x,y)和变量visits均取值为0。
然后根据激光束扫描结果改变单元格变量n、变量(x,y)和变量visits的取值,当变量n和变量(x,y)的取值发生变化时,将变量n和变量(x,y)由共有变量标记为私有变量。具体来说,当单元格组合中的任意单元格被激光束穿过时,变量visits增加1,变量n和变量(x,y)保持不变,仍旧为共有变量;当单元格组合中的任意单元格被激光束首次击中时,变量n和变量visits均增加1,变量(x、y)变为激光束的激光端点所对应的障碍物坐标,此时共有变量n和共有变量(x,y)由共有变量标记为私有变量。
随着激光数据的获取,在单元格的共有变量n和共有变量(x,y)变为私有变量后,若单元格被激光束穿过,则变量visits增加1,变量n和变量(x,y)保持不变;若单元格再次被激光束击中,则变量(x,y)累加激光束的激光端点所对应的障碍物坐标,同时变量n和变量visits各自增加1。当单元格组合中所有单元格的共有变量n和共有变量(x,y)均变为私有变量时,则释放存储所述原始共有变量的存储空间,以节约内存空间。
优选实施例中,所述私有变量还包括变量w,变量w用于表示变量n和变量(x,y)的状态,若变量n和变量(x,y)为共有变量,则变量w为false,若变量n和变量(x,y)为私有变量,则变量w为true。比如,当对所有粒子进行初始化后,每个单元格的变量w均为false;当单元格被激光束首次击中时,变量w由false变为true,即单元格的共有变量n和共有变量(x,y)变为私有变量。因此,通过查看变量w的取值即可知道单元格的变量n和变量(x,y)为共有变量还是私有变量,当所有单元格的变量w均为true时,就可以释放存储所述原始共有变量的存储空间,以节约内存空间。
假设粒子数量为m,地图构建完成时,地图X与Y方向的栅格数量分别为SizeX,SizeY。不采用该方法时每个单元格占用空间为16个字节,建图时总的占用存储空间为P=(m*SizeX*SizeY*16)。当采用该方法时,每个单元格占用空间为17个字节,已知地图构建完成时,被激光束端点击中单元格数量约为10%,只有10%的单元格的成员变量为完全私有,那么总的占用存储空间为Q=(m*SizeX*SizeY*17*0.1+m*SizeX*SizeY*5*0.9+SizeX*SizeY*12*0.9)。粒子数量一般为10~30个,当粒子数量为10时,节约内存空间为(P-Q)/P*100%=54.5%;当粒子数量为30时,节约内存空间为(P-Q)/P*100%=59%。因此采用该方法比传统方法可以节约54.5%~59%的内存空间。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本发明实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现以上所述的基于激光slam的内存优化方法。
图2是实施例2提供的基于激光slam的内存优化装置的结构示意图,如图2所示,包括组合模块100、初始化模块200、数据处理模块300和内存优化模块400,
所述组合模块100用于将不同粒子中包含相同地图坐标的多个单元格作为单元格组合,每个单元格组合包含的单元格均具有相同的原始共有变量和不同的私有变量;所述原始共有变量包括变量n和变量(x,y),所述私有变量包括变量visits,其中变量n表示单元格被标记为障碍物的次数,变量(x、y)表示击中单元格的激光束端点所对应障碍物坐标的累计结果,变量visits表示单元格被激光束扫描到的次数;
所述初始化模块200用于对所有粒子进行初始化,初始化后每个单元格的变量n、变量(x,y)、变量visits均取值为0;
所述数据处理模块300用于根据激光束扫描结果改变单元格变量n、变量(x,y)和变量visits的取值,当变量n和变量(x,y)的取值发生变化时,将变量n和变量(x,y)由共有变量标记为私有变量;
所述内存优化模块400用于当单元格组合中每个单元格的共有变量n和共有变量(x,y)均变为私有变量时,释放存储所述原始共有变量的存储空间。
在一个优选实施方式中,初始化后,当单元格组合中的任意单元格被激光束穿过时,所述数据处理模块300将变量visits增加1,变量n和变量(x,y)保持不变;当单元格组合中的任意单元格被激光束首次击中时,所述数据处理模块300将变量n和变量visits均增加1,且将变量(x、y)变为激光束的激光端点所对应的障碍物坐标,同时将共有变量n和共有变量(x,y)标记为私有变量。
在一个优选实施方式中,所述私有变量还包括变量w,变量w用于表示变量n和变量(x,y)的状态,若变量n和变量(x,y)为共有变量,则变量w为false,若变量n和变量(x,y)为私有变量,则变量w为true;对所有粒子进行初始化后,所述初始化模块200将每个单元格的变量w均设为false;单元格被激光束首次击中时,所述数据处理模块300将变量w由false变为true。
本发明实施例还提供了一种基于激光slam的内存优化终端,包括所述的计算机可读存储介质和处理器,所述处理器执行所述计算机可读存储介质上的计算机程序时实现以上所述基于激光slam的内存优化方法的步骤。图3是本发明实施例3提供的基于激光slam的内存优化终端的结构示意图,如图3所示,该实施例的基于激光slam的内存优化终端8包括:处理器80、可读存储介质81以及存储在所述可读存储介质81中并可在所述处理器80上运行的计算机程序82。所述处理器80执行所述计算机程序82时实现上述各个方法实施例中的步骤,例如图1所示的步骤1至步骤4。或者,所述处理器80执行所述计算机程序82时实现上述各装置实施例中各模块的功能,例如图2所示模块100至400的功能。
示例性的,所述计算机程序82可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述可读存储介质81中,并由所述处理器80执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序82在所述基于激光slam的内存优化终端8中的执行过程。
所述基于激光slam的内存优化终端8可包括,但不仅限于,处理器80、可读存储介质81。本领域技术人员可以理解,图3仅仅是基于激光slam的内存优化终端8的示例,并不构成对基于激光slam的内存优化终端8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于激光slam的内存优化终端还可以包括电源管理模块、运算处理模块、输入输出设备、网络接入设备、总线等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述可读存储介质81可以是所述基于激光slam的内存优化终端8的内部存储单元,例如基于激光slam的内存优化终端8的硬盘或内存。所述可读存储介质81也可以是所述基于激光slam的内存优化终端8的外部存储设备,例如所述基于激光slam的内存优化终端8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述可读存储介质81还可以既包括所述基于激光slam的内存优化终端8的内部存储单元也包括外部存储设备。所述可读存储介质81用于存储所述计算机程序以及所述基于激光slam的内存优化终端所需的其他程序和数据。所述可读存储介质81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本发明并不仅仅限于说明书和实施方式中所描述,因此对于熟悉领域的人员而言可容易地实现另外的优点和修改,故在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。
Claims (10)
1.一种基于激光slam的内存优化方法,其特征在于,包括以下步骤:
步骤1,将不同粒子中包含相同地图坐标的多个单元格作为单元格组合,每个单元格组合包含的单元格均具有相同的原始共有变量和不同的私有变量;所述原始共有变量包括变量n和变量(x,y),所述私有变量包括变量visits,其中变量n表示单元格被标记为障碍物的次数,变量(x、y)表示击中单元格的激光束端点所对应障碍物坐标的累加结果,变量visits表示单元格被激光束扫描到的次数;
步骤2,对所有粒子进行初始化,初始化后每个单元格的变量n、变量(x,y)、变量visits均取值为0;
步骤3,根据激光束扫描结果改变单元格变量n、变量(x,y)和变量visits的取值,当变量n和变量(x,y)的取值发生变化时,将变量n和变量(x,y)由共有变量标记为私有变量;
步骤4,当单元格组合中每个单元格的共有变量n和共有变量(x,y)均变为私有变量时,释放存储所述原始共有变量的存储空间。
2.根据权利要求1所述基于激光slam的内存优化方法,其特征在于,步骤3中,当单元格组合中的任意单元格被激光束穿过时,变量visits增加1,变量n和变量(x,y)保持不变;当单元格组合中的任意单元格被激光束首次击中时,变量n和变量visits均增加1,变量(x、y)变为激光束的激光端点所对应的障碍物坐标,同时将共有变量n和共有变量(x,y)标记为私有变量。
3.根据权利要求1或2所述基于激光slam的内存优化方法,其特征在于,所述私有变量还包括变量w,变量w用于表示变量n和变量(x,y)的状态,若变量n和变量(x,y)为共有变量,则变量w为false,若变量n和变量(x,y)为私有变量,则变量w为true;
当对所有粒子进行初始化后,每个单元格的变量w均为false;当单元格被激光束首次击中时,变量w由false变为true,即单元格的共有变量n和共有变量(x,y)变为私有变量。
4.根据权利要求3所述基于激光slam的内存优化方法,其特征在于,变量n和变量visits的数据类型为int,变量(x,y)的数据类型为float。
5.根据权利要求4所述基于激光slam的内存优化方法,其特征在于,当单元格的共有变量n和共有变量(x,y)变为私有变量后,若单元格被激光束穿过,则变量visits增加1,变量n和变量(x,y)保持不变;若单元格再次被激光束击中,则变量(x,y)累加激光束的激光端点所对应的障碍物坐标,同时变量n和变量visits各自增加1。
6.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1-5任一项所述基于激光slam的内存优化方法。
7.一种基于激光slam的内存优化终端,其特征在于,包括权利要求6所述的计算机可读存储介质和处理器,所述处理器执行所述计算机可读存储介质上的计算机程序时实现如权利要求1-5任一项所述基于激光slam的内存优化方法的步骤。
8.一种基于激光slam的内存优化装置,其特征在于,包括组合模块、初始化模块、数据处理模块和内存优化模块,
所述组合模块用于将不同粒子中包含相同地图坐标的多个单元格作为单元格组合,每个单元格组合包含的单元格均具有相同的原始共有变量和不同的私有变量;所述原始共有变量包括变量n和变量(x,y),所述私有变量包括变量visits,其中变量n表示单元格被标记为障碍物的次数,变量(x、y)表示击中单元格的激光束端点所对应障碍物坐标的累计结果,变量visits表示单元格被激光束扫描到的次数;
所述初始化模块用于对所有粒子进行初始化,初始化后每个单元格的变量n、变量(x,y)、变量visits均取值为0;
所述数据处理模块用于根据激光束扫描结果改变单元格变量n、变量(x,y)和变量visits的取值,当变量n和变量(x,y)的取值发生变化时,将变量n和变量(x,y)由共有变量标记为私有变量;
所述内存优化模块用于当单元格组合中每个单元格的共有变量n和共有变量(x,y)均变为私有变量时,释放存储所述原始共有变量的存储空间。
9.根据权利要求8所述基于激光slam的内存优化装置,其特征在于,初始化后,当单元格组合中的任意单元格被激光束穿过时,所述数据处理模块将变量visits增加1,变量n和变量(x,y)保持不变;当单元格组合中的任意单元格被激光束首次击中时,所述数据处理模块将变量n和变量visits均增加1,且将变量(x、y)变为激光束的激光端点所对应的障碍物坐标,同时将共有变量n和共有变量(x,y)标记为私有变量。
10.根据权利要求8或9所述基于激光slam的内存优化装置,其特征在于,所述私有变量还包括变量w,变量w用于表示变量n和变量(x,y)的状态,若变量n和变量(x,y)为共有变量,则变量w为false,若变量n和变量(x,y)为私有变量,则变量w为true;对所有粒子进行初始化后,所述初始化模块将每个单元格的变量w均设为false;单元格被激光束首次击中时,所述数据处理模块将变量w由false变为true。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911329834.6A CN110956697B (zh) | 2019-12-20 | 2019-12-20 | 基于激光slam的内存优化方法、介质、终端和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911329834.6A CN110956697B (zh) | 2019-12-20 | 2019-12-20 | 基于激光slam的内存优化方法、介质、终端和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110956697A CN110956697A (zh) | 2020-04-03 |
CN110956697B true CN110956697B (zh) | 2023-05-05 |
Family
ID=69983136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911329834.6A Active CN110956697B (zh) | 2019-12-20 | 2019-12-20 | 基于激光slam的内存优化方法、介质、终端和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110956697B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109461208A (zh) * | 2018-11-15 | 2019-03-12 | 网易(杭州)网络有限公司 | 三维地图处理方法、装置、介质和计算设备 |
WO2019068214A1 (en) * | 2017-10-03 | 2019-04-11 | Intel Corporation | NETWORK OCCUPANCY MAPPING USING ERROR RANGE DISTRIBUTION |
CN110333720A (zh) * | 2019-07-10 | 2019-10-15 | 国网四川省电力公司电力科学研究院 | 一种基于粒子滤波的slam优化方法 |
-
2019
- 2019-12-20 CN CN201911329834.6A patent/CN110956697B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019068214A1 (en) * | 2017-10-03 | 2019-04-11 | Intel Corporation | NETWORK OCCUPANCY MAPPING USING ERROR RANGE DISTRIBUTION |
CN109461208A (zh) * | 2018-11-15 | 2019-03-12 | 网易(杭州)网络有限公司 | 三维地图处理方法、装置、介质和计算设备 |
CN110333720A (zh) * | 2019-07-10 | 2019-10-15 | 国网四川省电力公司电力科学研究院 | 一种基于粒子滤波的slam优化方法 |
Non-Patent Citations (1)
Title |
---|
葛艳茹 ; 张国伟 ; 沈宏双 ; 孙温和 ; .基于激光测距仪全局匹配扫描的SLAM算法研究.计算机测量与控制.2016,(第12期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110956697A (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111079801B (zh) | 基于点云匹配快速搜索最近点的方法、介质、终端和装置 | |
CN110969649B (zh) | 一种激光点云与地图的匹配评价方法、介质、终端和装置 | |
CN111707279B (zh) | 一种激光点云与地图的匹配评价方法、介质、终端和装置 | |
CN111640180B (zh) | 一种三维重建方法、装置及终端设备 | |
CN111707262B (zh) | 基于最近点向量投影的点云匹配方法、介质、终端和装置 | |
CN110887493A (zh) | 基于局部地图匹配的轨迹推算方法、介质、终端和装置 | |
CN110887490B (zh) | 一种激光定位导航的关键帧选取方法、介质、终端和装置 | |
CN112799599A (zh) | 一种数据存储方法、计算核、芯片和电子设备 | |
CN115457152A (zh) | 外参标定方法、装置、电子设备及存储介质 | |
CN110956697B (zh) | 基于激光slam的内存优化方法、介质、终端和装置 | |
CN110717141A (zh) | 一种车道线优化方法、装置及存储介质 | |
CN112097772B (zh) | 机器人及其地图构建方法和装置 | |
CN113295160A (zh) | 基于视觉导航的地图加载方法、装置、设备及存储介质 | |
US11498227B2 (en) | Robot pose determination method and apparatus and robot using the same | |
CN111127590A (zh) | 一种二阶贝塞尔曲线绘制方法及装置 | |
CN112816959B (zh) | 用于车辆的聚类方法、装置、设备和存储介质 | |
CN115512065B (zh) | 一种基于分块化的大规模场景下实时地图构建方法和装置 | |
CN111061824B (zh) | 基于改进四叉树的范围判断方法、装置、设备 | |
CN114036721A (zh) | 微模块的三维温度云场的构建方法及装置 | |
CN112669196A (zh) | 一种硬件加速引擎中因子图优化数据的方法和设备 | |
CN108572939B (zh) | Vi-slam的优化方法、装置、设备及计算机可读介质 | |
CN112484729A (zh) | 导航地图切换方法、装置、终端设备及存储介质 | |
CN117611761B (zh) | 一种用于cad图纸的地图要素绘制方法、系统、设备及介质 | |
CN114295138B (zh) | 机器人、地图扩建方法、装置和可读存储介质 | |
CN109740228B (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 |