CN116563482A - 一种用点云地图生成栅格地图的方法、装置及介质 - Google Patents
一种用点云地图生成栅格地图的方法、装置及介质 Download PDFInfo
- Publication number
- CN116563482A CN116563482A CN202310487767.0A CN202310487767A CN116563482A CN 116563482 A CN116563482 A CN 116563482A CN 202310487767 A CN202310487767 A CN 202310487767A CN 116563482 A CN116563482 A CN 116563482A
- Authority
- CN
- China
- Prior art keywords
- grid
- map
- type
- point cloud
- point
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/08—Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Remote Sensing (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Electromagnetism (AREA)
- Radar, Positioning & Navigation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种用点云地图生成栅格地图的方法,S1,获取目标场景的点云地图;S2,遍历所述目标场景点云地图中的每个点,根据所述目标场景点云地图的最小x,y以及最大x,y生成占据栅格地图的宽和高,并生成一占据栅格地图;S3,遍历所述目标场景地图中的每个点p获取所述目标场景地图中的每个点p在所述占据栅格地图的栅格,根据所述目标场景地图中的每个点p的z值更新栅格的min_z、max_z;S4,根据所述栅格的z轴差与设定的阈值的关系更新所述栅格的type。本实施例利用已经建立完成的点云地图,映射在占据栅格地图上后,根据每个栅格的对应点云中的点更新其z轴差,根据z轴差生成第一类栅格和第二类栅格。
Description
技术领域
本发明涉及机器人技术领域,具体来说,涉及一种用点云地图生成栅格地图的方法、装置及介质。
背景技术
机器人在建图过程中,实时将3D点云用光线追踪法生成占据栅格地图。当利用3D激光雷达进行建图时,除了要生成点云地图外,还需要生成占据栅格地图,给机器人规划控制模块使用。一般在建图过程中,实时将3D点云用光线追踪法生成占据栅格地图,但是3D点云数量多,生成占据栅格地图的时间耗时长;而且当地图发生回环时,占据栅格也需要实时调整,而这个就需要建立一系列的子图。整个模块耗时长且实现复杂。
本文提供的背景描述用于总体上呈现本公开的上下文的目的。除非本文另外指示,在该章节中描述的资料不是该申请的权利要求的现有技术并且不要通过包括在该章节内来承认其成为现有技术。
发明内容
针对相关技术中的上述技术问题,本发明提出一种用点云地图生成栅格地图的方法,其包括如下步骤:
S1,获取目标场景的点云地图,所述点云地图为已经建图完成的点云地图;
S2,遍历所述目标场景点云地图中的每个点,根据所述目标场景点云地图的最小x,y以及最大x,y生成占据栅格地图的宽和高,并所述据栅格地图的宽和高生成一占据栅格地图;其中每个栅格有三个属性值:type、min_z、max_z,type为该栅格属于第几类栅格,生成栅格地图时默认都是第三类栅格;min_z为映射在该栅格上的点云地图中的点的z值最小值,生成栅格地图时默认是正无穷大;max_z为映射在该栅格上的点云地图中的点的z值最大值,生成栅格地图时默认是负无穷大;所述第三类栅格为尚未探明的栅格;
S3,遍历所述目标场景地图中的每个点p(p_x,p_y,p_z),根据占据栅格地图的分辨率和占据栅格的原点在所述目标场景地图的坐标获取所述目标场景地图中的每个点p在所述占据栅格地图的栅格grid_p,根据所述目标场景地图中的每个点p的z值更新栅格grid_p的min_z、max_z;
S4,根据所述栅格grid_p的z轴差max_z-min_z与设定的阈值value_thr的关系更新所述grid_p的type。
具体的,所述步骤S2具体为:遍历所述目标场景点云地图中的每个点,找出最小的x、y,记为x_min、y_min;找出最大的x、y,记为x_max、y_max;则占据栅格地图的宽为width=(x_max-x_min+20)/res,占据栅格地图的高为height=(y_max-y_min+20)/res,其中res为占据栅格地图的分辨率,表示一个栅格映射在现实中尺寸长度;以width和height为参数生成一张占据栅格地图。
具体的,所述步骤S3中遍历所述目标场景地图中的每个点p(p_x,p_y,p_z),根据占据栅格地图的分辨率和占据栅格的原点在所述目标场景地图的坐标获取所述目标场景地图中的每个点p在所述占据栅格地图的栅格grid_p具体为:
根据占据栅格地图的原点,在所述目标场景点云地图中的坐标为origin_x=x_min-10,origin_y=y_min-10,遍历目标场景点云中的每个点p(p_x,p_y,p_z),该p点在栅格地图中的坐标为grid_x=(p_x-origin_x)/res,grid_y=(p_y-origin_y)/res,也就是以占据栅格地图左下角为原点,第grid_y行和第grid_x列相交的栅格为该点在栅格地图中映射的栅格grid_p。
具体的,所述步骤S3中根据所述目标场景地图中的每个点p的z值更新栅格grid_p的min_z、max_z具体为:
根据p点的z值更新栅格grid_p的min_z、max_z,min_z更新为min_z和p_z中的最小值,max_z更新为max_z和p_z中的最大值。
具体的,所述步骤S4具体为:在所述栅格的z轴差max_z-min_z大于设定的阈值value_thr时,将grid_p的type更新为第二类栅格;若小于设定的阈值value_thr,则将grid_p的type更新为第一类栅格,其中第一类栅格为已探明无障碍物的栅格,第二类栅格为已探明有障碍物的栅格。
第二方面,本发明的另一个实施例公开了一种用点云地图生成栅格地图的装置,其包括如下单元:
目标场景点云地图获取单元,用于获取目标场景的点云地图,所述点云地图为已经建图完成的点云地图;
栅格生成单元,用于遍历所述目标场景点云地图中的每个点,根据所述目标场景点云地图的最小x,y以及最大x,y生成占据栅格地图的宽和高,并所述据栅格地图的宽和高生成一占据栅格地图;其中每个栅格有三个属性值:type、min_z、max_z,type为该栅格属于第几类栅格,生成栅格地图时默认都是第三类栅格;min_z为映射在该栅格上的点云地图中的点的z值最小值,生成栅格地图时默认是正无穷大;max_z为映射在该栅格上的点云地图中的点的z值最大值,生成栅格地图时默认是负无穷大;所述第三类栅格为尚未探明的栅格;
栅格更新单元,用于遍历所述目标场景地图中的每个点p(p_x,p_y,p_z),根据占据栅格地图的分辨率和占据栅格的原点在所述目标场景地图的坐标获取所述目标场景地图中的每个点p在所述占据栅格地图的栅格grid_p,根据所述目标场景地图中的每个点p的z值更新栅格grid_p的min_z、max_z;
栅格类型更新单元,用于根据所述栅格grid_p的z轴差max_z-min_z与设定的阈值value_thr的关系更新所述grid_p的type;
具体的,所述栅格生成单元具体为:遍历所述目标场景点云地图中的每个点,找出最小的x、y,记为x_min、y_min;找出最大的x、y,记为x_max、y_max;则占据栅格地图的宽为width=(x_max-x_min+20)/res,占据栅格地图的高为height=(y_max-y_min+20)/res,其中res为占据栅格地图的分辨率,表示一个栅格映射在现实中尺寸长度;以width和height为参数生成一张占据栅格地图。
具体的,所述栅格更新单元具体为:
根据占据栅格地图的原点,在所述目标场景点云地图中的坐标为origin_x=x_min-10,origin_y=y_min-10,遍历目标场景点云中的每个点p(p_x,p_y,p_z),该p点在栅格地图中的坐标为grid_x=(p_x-origin_x)/res,grid_y=(p_y-origin_y)/res,也就是以占据栅格地图左下角为原点,第grid_y行和第grid_x列相交的栅格为该点在栅格地图中映射的栅格grid_p;根据p点的z值更新栅格grid_p的min_z、max_z,min_z更新为min_z和p_z中的最小值,max_z更新为max_z和p_z中的最大值。
具体的,所述栅格类型更新单元具体为:在所述栅格的z轴差max_z-min_z大于设定的阈值value_thr时,将grid_p的type更新为第二类栅格;若小于设定的阈值value_thr,则将grid_p的type更新为第一类栅格,其中第一类栅格为已探明无障碍物的栅格,第二类栅格为已探明有障碍物的栅格。
第三方面,本发明的另一个实施例公开了一种机器人,所述机器人包括:一处理模块,一底盘,一存储模块,一激光雷达,所述存储模块存储有指令,在所述指令被执行时,用于实现上述的一种用点云地图生成栅格地图的方法。
第四方面,本发明的另一个实施例公开了一种非易失性存储器,所述非易失性存储器上存储有指令,所述指令被处理器执行时,用于实现上述的一种用点云地图生成栅格地图的方法。
本发明利用已经建立完成的点云地图,映射在占据栅格地图上后,根据每个栅格的对应点云中的点更新其z轴差,根据z轴差生成第一类栅格和第二类栅格。本发明的生成栅格地图的方法,利用已经建立好的点云地图来生成占据栅格地图,避免实时生成占据地图耗时长、模块实现复杂的问题,不需要考虑回环带来的影响。此外,处理简单速度快,避免了光线追踪法的复杂计算。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种用点云地图生成栅格地图的方法流程图;
图2是本发明实施例提供的栅格地图的示意图;
图3是本发明实施例提供的一种用点云地图生成栅格地图的装置示意图;
图4是本发明实施例提供的一种用点云地图生成栅格地图的设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参考图1,本实施例公开了一种用点云地图生成栅格地图的方法,其包括如下步骤:
S1,获取目标场景的点云地图,所述点云地图为已经建图完成的点云地图;
参考图2,栅格地图是由一个个正方形的栅格所组成的地图。可以以图片文件的形式存在,其中的栅格可以分为三类,第一类栅格为已探明无障碍物的栅格,一般可以使用白色表示;第二类栅格为已探明有障碍物的栅格,一般可以使用黑色表示;第三类栅格为尚未探明的栅格,一般可以使用灰色表示。
本实施例的机器人具有一3D激光雷达,其可以通过SLAM的方式来建立目标场景的地图,对于SLAM建图方式属于本领域的公知常识,本实施例不再赘述。
本实施例的机器人在针对一目标场景建图时,其需要在目标场景进行移动来对整个目标场景进行建图,最终生成一个目标场景点云地图。而现有技术中一般在建图过程中,实时将3D点云用光线追踪法生成占据栅格地图,但是3D点云数量多,生成占据栅格地图的时间耗时长;而且当地图发生回环时,占据栅格也需要实时调整,而这个就需要建立一系列的子图。本实施例是在机器人对整个目标场景建图完成后在进行栅格地图的生成。
S2,遍历所述目标场景点云地图中的每个点,根据所述目标场景点云地图的最小x,y以及最大x,y生成占据栅格地图的宽和高,并所述据栅格地图的宽和高生成一占据栅格地图;其中每个栅格有三个属性值:type、min_z、max_z,type为该栅格属于第几类栅格,生成栅格地图时默认都是第三类栅格;min_z为映射在该栅格上的点云地图中的点的z值最小值,生成栅格地图时默认是正无穷大;max_z为映射在该栅格上的点云地图中的点的z值最大值,生成栅格地图时默认是负无穷大;所述第三类栅格为尚未探明的栅格;
遍历点云地图中的每个点,找出最小的x、y,记为x_min、y_min;找出最大的x、y,记为x_max、y_max。则占据栅格地图的宽为width=(x_max-x_min+20)/res,占据栅格地图的高为height=(y_max-y_min+20)/res,其中res为占据栅格地图的分辨率,表示一个栅格映射在现实中尺寸长度,典型的为0.1m;以width和height为参数生成一张占据栅格地图,每个栅格有三个属性值:type、min_z、max_z,type为该栅格属于第几类栅格,生成栅格地图时默认都是第三类栅格;min_z为映射在该栅格上的点云地图中的点的z值最小值,生成栅格地图时默认是正无穷大;max_z为映射在该栅格上的点云地图中的点的z值最大值,生成栅格地图时默认是负无穷大。
S3,遍历所述目标场景地图中的每个点p(p_x,p_y,p_z),根据占据栅格地图的分辨率和占据栅格的原点在所述目标场景地图的坐标获取所述目标场景地图中的每个点p在所述占据栅格地图的栅格grid_p,根据所述目标场景地图中的每个点p的z值更新栅格grid_p的min_z、max_z;
占据栅格地图的原点在图片的左下角,根据步骤S1生成的占据栅格地图的原点,在点云地图中的坐标为origin_x=x_min-10,origin_y=y_min-10。遍历点云中的每个点p(p_x,p_y,p_z),该点在栅格地图中的坐标为grid_x=(p_x-origin_x)/res,grid_y=(p_y-origin_y)/res,也就是以占据栅格地图左下角为原点,第grid_y行和第grid_x列相交的栅格为该点在栅格地图中映射的栅格grid_p。根据p点的z值更新栅格grid_p的min_z、max_z,min_z更新为min_z和p_z中的最小值,max_z更新为max_z和p_z中的最大值。
S4,根据所述栅格grid_p的z轴差max_z-min_z与设定的阈值value_thr的关系更新所述grid_p的type;
将grid_p的type更新为第二类栅格;若小于设定的阈值value_thr,则将grid_p的type更新为第一类栅格,其中第一类栅格为已探明无障碍物的栅格,第二类栅格为已探明有障碍物的栅格。
新grid_p的min_z、max_z后,如果该栅格的z轴差max_z-min_z大于设定的阈值value_thr时,将grid_p的type更新为第二类栅格;若小于设定的阈值value_thr,则将grid_p的type更新为第一类栅格。经典的value_thr值为0.3。
本实施例利用已经建立完成的点云地图,映射在占据栅格地图上后,根据每个栅格的对应点云中的点更新其z轴差,根据z轴差生成第一类栅格和第二类栅格。本实施例的生成栅格地图的方法,利用已经建立好的点云地图来生成占据栅格地图,避免实时生成占据地图耗时长、模块实现复杂的问题,不需要考虑回环带来的影响。此外,处理简单速度快,避免了光线追踪法的复杂计算。
实施例二
参考图3,本实施例公开了一种用点云地图生成栅格地图的装置,其包括如下单元:
目标场景点云地图获取单元,用于获取目标场景的点云地图,所述点云地图为已经建图完成的点云地图;
参考图2,栅格地图是由一个个正方形的栅格所组成的地图。可以以图片文件的形式存在,其中的栅格可以分为三类,第一类栅格为已探明无障碍物的栅格,一般可以使用白色表示;第二类栅格为已探明有障碍物的栅格,一般可以使用黑色表示;第三类栅格为尚未探明的栅格,一般可以使用灰色表示。
本实施例的机器人具有一3D激光雷达,其可以通过SLAM的方式来建立目标场景的地图,对于SLAM建图方式属于本领域的公知常识,本实施例不再赘述。
本实施例的机器人在针对一目标场景建图时,其需要在目标场景进行移动来对整个目标场景进行建图,最终生成一个目标场景点云地图。而现有技术中一般在建图过程中,实时将3D点云用光线追踪法生成占据栅格地图,但是3D点云数量多,生成占据栅格地图的时间耗时长;而且当地图发生回环时,占据栅格也需要实时调整,而这个就需要建立一系列的子图。本实施例是在机器人对整个目标场景建图完成后在进行栅格地图的生成。
栅格生成单元,用于遍历所述目标场景点云地图中的每个点,根据所述目标场景点云地图的最小x,y以及最大x,y生成占据栅格地图的宽和高,并所述据栅格地图的宽和高生成一占据栅格地图;其中每个栅格有三个属性值:type、min_z、max_z,type为该栅格属于第几类栅格,生成栅格地图时默认都是第三类栅格;min_z为映射在该栅格上的点云地图中的点的z值最小值,生成栅格地图时默认是正无穷大;max_z为映射在该栅格上的点云地图中的点的z值最大值,生成栅格地图时默认是负无穷大;所述第三类栅格为尚未探明的栅格;
遍历点云地图中的每个点,找出最小的x、y,记为x_min、y_min;找出最大的x、y,记为x_max、y_max。则占据栅格地图的宽为width=(x_max-x_min+20)/res,占据栅格地图的高为height=(y_max-y_min+20)/res,其中res为占据栅格地图的分辨率,表示一个栅格映射在现实中尺寸长度,典型的为0.1m;以width和height为参数生成一张占据栅格地图,每个栅格有三个属性值:type、min_z、max_z,type为该栅格属于第几类栅格,生成栅格地图时默认都是第三类栅格;min_z为映射在该栅格上的点云地图中的点的z值最小值,生成栅格地图时默认是正无穷大;max_z为映射在该栅格上的点云地图中的点的z值最大值,生成栅格地图时默认是负无穷大。
S3,遍历所述目标场景地图中的每个点p(p_x,p_y,p_z),根据占据栅格地图的分辨率和占据栅格的原点在所述目标场景地图的坐标获取所述目标场景地图中的每个点p在所述占据栅格地图的栅格grid_p,根据所述目标场景地图中的每个点p的z值更新栅格grid_p的min_z、max_z;
占据栅格地图的原点在图片的左下角,根据生成的占据栅格地图的原点,在点云地图中的坐标为origin_x=x_min-10,origin_y=y_min-10。遍历点云中的每个点p(p_x,p_y,p_z),该点在栅格地图中的坐标为grid_x=(p_x-origin_x)/res,grid_y=(p_y-origin_y)/res,也就是以占据栅格地图左下角为原点,第grid_y行和第grid_x列相交的栅格为该点在栅格地图中映射的栅格grid_p。根据p点的z值更新栅格grid_p的min_z、max_z,min_z更新为min_z和p_z中的最小值,max_z更新为max_z和p_z中的最大值。
栅格类型更新单元,用于根据所述栅格grid_p的z轴差max_z-min_z与设定的阈值value_thr的关系更新所述grid_p的type;
将grid_p的type更新为第二类栅格;若小于设定的阈值value_thr,则将grid_p的type更新为第一类栅格,其中第一类栅格为已探明无障碍物的栅格,第二类栅格为已探明有障碍物的栅格。
新grid_p的min_z、max_z后,如果该栅格的z轴差max_z-min_z大于设定的阈值value_thr时,将grid_p的type更新为第二类栅格;若小于设定的阈值value_thr,则将grid_p的type更新为第一类栅格。经典的value_thr值为0.3。
本实施例利用已经建立完成的点云地图,映射在占据栅格地图上后,根据每个栅格的对应点云中的点更新其z轴差,根据z轴差生成第一类栅格和第二类栅格。本实施例的生成栅格地图的方法,利用已经建立好的点云地图来生成占据栅格地图,避免实时生成占据地图耗时长、模块实现复杂的问题,不需要考虑回环带来的影响。此外,处理简单速度快,避免了光线追踪法的复杂计算。
实施例三
参考图4,图4是本实施例的一种用点云地图生成栅格地图的设备的结构示意图。该实施例的用点云地图生成栅格地图的设备20包括处理器21、存储器22以及存储在所述存储器22中并可在所述处理器21上运行的计算机程序。所述处理器21执行所述计算机程序时实现上述方法实施例中的步骤。或者,所述处理器21执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器22中,并由所述处理器21执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述用点云地图生成栅格地图的设备20中的执行过程。例如,所述计算机程序可以被分割成实施例二中的各个模块,各模块具体功能请参考上述实施例所述的装置的工作过程,在此不再赘述。
所述用点云地图生成栅格地图的设备20可包括,但不仅限于,处理器21、存储器22。本领域技术人员可以理解,所述示意图仅仅是用点云地图生成栅格地图的设备20的示例,并不构成对用点云地图生成栅格地图的设备20的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述用点云地图生成栅格地图的设备20还可以包括输入输出设备、网络接入设备、总线等。
所述处理器21可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器21是所述用点云地图生成栅格地图的设备20的控制中心,利用各种接口和线路连接整个用点云地图生成栅格地图的设备20的各个部分。
所述存储器22可用于存储所述计算机程序和/或模块,所述处理器21通过运行或执行存储在所述存储器22内的计算机程序和/或模块,以及调用存储在存储器22内的数据,实现所述用点云地图生成栅格地图的设备20的各种功能。所述存储器22可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述用点云地图生成栅格地图的设备20集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器21执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种用点云地图生成栅格地图的方法,其包括如下步骤:
S1,获取目标场景的点云地图,所述点云地图为已经建图完成的点云地图;
S2,遍历所述目标场景点云地图中的每个点,根据所述目标场景点云地图的最小x,y以及最大x,y生成占据栅格地图的宽和高,并以所述据栅格地图的宽和高生成一占据栅格地图;其中每个栅格有三个属性值:type、min_z、max_z,type为该栅格属于第几类栅格,生成栅格地图时默认都是第三类栅格;min_z为映射在该栅格上的点云地图中的点的z值最小值,生成栅格地图时默认是正无穷大;max_z为映射在该栅格上的点云地图中的点的z值最大值,生成栅格地图时默认是负无穷大;所述第三类栅格为尚未探明的栅格;
S3,遍历所述目标场景地图中的每个点p(p_x,p_y,p_z),根据占据栅格地图的分辨率和占据栅格的原点在所述目标场景地图的坐标获取所述目标场景地图中的每个点p在所述占据栅格地图的栅格grid_p,根据所述目标场景地图中的每个点p的z值更新栅格grid_p的min_z、max_z;
S4,根据所述栅格grid_p的z轴差max_z-min_z与设定的阈值value_thr的关系更新所述grid_p的type。
2.根据权利要求1所述的方法,所述步骤S2具体为:遍历所述目标场景点云地图中的每个点,找出最小的x、y,记为x_min、y_min;找出最大的x、y,记为x_max、y_max;则占据栅格地图的宽为width=(x_max-x_min+20)/res,占据栅格地图的高为height=(y_max-y_min+20)/res,其中res为占据栅格地图的分辨率,表示一个栅格映射在现实中尺寸长度;以width和height为参数生成一张占据栅格地图。
3.根据权利要求2所述的方法,所述步骤S3中遍历所述目标场景地图中的每个点p(p_x,p_y,p_z),根据占据栅格地图的分辨率和占据栅格的原点在所述目标场景地图的坐标获取所述目标场景地图中的每个点p在所述占据栅格地图的栅格grid_p具体为:
根据占据栅格地图的原点,在所述目标场景点云地图中的坐标为origin_x=x_min-10,origin_y=y_min-10,遍历目标场景点云中的每个点p(p_x,p_y,p_z),该p点在栅格地图中的坐标为grid_x=(p_x-origin_x)/res,grid_y=(p_y-origin_y)/res,也就是以占据栅格地图左下角为原点,第grid_y行和第grid_x列相交的栅格为该点在栅格地图中映射的栅格grid_p。
4.根据权利要求3所述的方法,所述步骤S3中根据所述目标场景地图中的每个点p的z值更新栅格grid_p的min_z、max_z具体为:
根据p点的z值更新栅格grid_p的min_z、max_z,min_z更新为min_z和p_z中的最小值,max_z更新为max_z和p_z中的最大值。
5.根据权利要求4所述的方法,所述步骤S4具体为:在所述栅格的z轴差max_z-min_z大于设定的阈值value_thr时,将grid_p的type更新为第二类栅格;若小于设定的阈值value_thr,则将grid_p的type更新为第一类栅格,其中第一类栅格为已探明无障碍物的栅格,第二类栅格为已探明有障碍物的栅格。
6.一种用点云地图生成栅格地图的装置,其包括如下单元:
目标场景点云地图获取单元,用于获取目标场景的点云地图,所述点云地图为已经建图完成的点云地图;
栅格生成单元,用于遍历所述目标场景点云地图中的每个点,根据所述目标场景点云地图的最小x,y以及最大x,y生成占据栅格地图的宽和高,并以所述据栅格地图的宽和高生成一占据栅格地图;其中每个栅格有三个属性值:type、min_z、max_z,type为该栅格属于第几类栅格,生成栅格地图时默认都是第三类栅格;min_z为映射在该栅格上的点云地图中的点的z值最小值,生成栅格地图时默认是正无穷大;max_z为映射在该栅格上的点云地图中的点的z值最大值,生成栅格地图时默认是负无穷大;所述第三类栅格为尚未探明的栅格;
栅格更新单元,用于遍历所述目标场景地图中的每个点p(p_x,p_y,p_z),根据占据栅格地图的分辨率和占据栅格的原点在所述目标场景地图的坐标获取所述目标场景地图中的每个点p在所述占据栅格地图的栅格grid_p,根据所述目标场景地图中的每个点p的z值更新栅格grid_p的min_z、max_z;
栅格类型更新单元,用于根据所述栅格grid_p的z轴差max_z-min_z与设定的阈值value_thr的关系更新所述grid_p的type。
7.根据权利要求6所述的装置,所述栅格生成单元具体为:遍历所述目标场景点云地图中的每个点,找出最小的x、y,记为x_min、y_min;找出最大的x、y,记为x_max、y_max;则占据栅格地图的宽为width=(x_max-x_min+20)/res,占据栅格地图的高为height=(y_max-y_min+20)/res,其中res为占据栅格地图的分辨率,表示一个栅格映射在现实中尺寸长度;以width和height为参数生成一张占据栅格地图。
8.根据权利要求7所述的装置,所述栅格更新单元具体为:
根据占据栅格地图的原点,在所述目标场景点云地图中的坐标为origin_x=x_min-10,origin_y=y_min-10,遍历目标场景点云中的每个点p(p_x,p_y,p_z),该p点在栅格地图中的坐标为grid_x=(p_x-origin_x)/res,grid_y=(p_y-origin_y)/res,也就是以占据栅格地图左下角为原点,第grid_y行和第grid_x列相交的栅格为该点在栅格地图中映射的栅格grid_p;根据p点的z值更新栅格grid_p的min_z、max_z,min_z更新为min_z和p_z中的最小值,max_z更新为max_z和p_z中的最大值。
9.根据权利要求8所述的装置,所述栅格类型更新单元具体为:在所述栅格的z轴差max_z-min_z大于设定的阈值value_thr时,将grid_p的type更新为第二类栅格;若小于设定的阈值value_thr,则将grid_p的type更新为第一类栅格,其中第一类栅格为已探明无障碍物的栅格,第二类栅格为已探明有障碍物的栅格。
10.一种机器人,所述机器人包括:一处理模块,一底盘,一存储模块,一激光雷达,所述存储模块存储有指令,在所述指令被执行时,用于实现如权利要求1-5中任一项所述的一种用点云地图生成栅格地图的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310487767.0A CN116563482A (zh) | 2023-04-28 | 2023-04-28 | 一种用点云地图生成栅格地图的方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310487767.0A CN116563482A (zh) | 2023-04-28 | 2023-04-28 | 一种用点云地图生成栅格地图的方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116563482A true CN116563482A (zh) | 2023-08-08 |
Family
ID=87501093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310487767.0A Pending CN116563482A (zh) | 2023-04-28 | 2023-04-28 | 一种用点云地图生成栅格地图的方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116563482A (zh) |
-
2023
- 2023-04-28 CN CN202310487767.0A patent/CN116563482A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11842438B2 (en) | Method and terminal device for determining occluded area of virtual object | |
CN110990516B (zh) | 地图数据的处理方法、装置和服务器 | |
CN111275633B (zh) | 基于图像分割的点云去噪方法、系统、装置和存储介质 | |
CN111640180B (zh) | 一种三维重建方法、装置及终端设备 | |
CN111445566B (zh) | 一种信息处理方法、装置及计算机可读存储介质 | |
CN111127615A (zh) | 一种三维模型的数据调度方法、装置及电子设备 | |
CN110853488B (zh) | 一种poi标签显示方法、装置和设备 | |
CN113012274B (zh) | 一种阴影渲染的方法、装置以及电子设备 | |
CN109377552B (zh) | 图像遮挡计算方法、装置、计算设备及存储介质 | |
CN114241105A (zh) | 界面渲染方法、装置、设备和计算机可读存储介质 | |
CN111870953B (zh) | 一种高度图生成方法、装置、设备及存储介质 | |
CN110458954B (zh) | 一种等高线生成方法、装置及设备 | |
CN108986034B (zh) | 一种栅格数据坐标转换方法、系统、终端设备及存储介质 | |
US10650575B2 (en) | Method and system for computer graphics rendering | |
EP4231243A1 (en) | Data storage management method, object rendering method, and device | |
CN111681317B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110887490B (zh) | 一种激光定位导航的关键帧选取方法、介质、终端和装置 | |
CN116563482A (zh) | 一种用点云地图生成栅格地图的方法、装置及介质 | |
CN113126944B (zh) | 深度图的显示方法、显示装置、电子设备及存储介质 | |
CN112419137B (zh) | 遮罩图片显示方法、装置及遮罩图片显示方法、装置 | |
CN110704561B (zh) | 一种地图贴边方法、终端装置及存储介质 | |
CN116109758B (zh) | 一种光源投影位置定位、场景渲染的方法及装置 | |
CN113157835B (zh) | 基于gis平台的图像处理方法、装置、平台及存储介质 | |
CN109045693B (zh) | 模型的剔除方法及装置、存储介质和电子装置 | |
CN114964207B (zh) | 一种机器人3d点云地图动态更新方法、装置及机器人 |
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 |