CN116843846A - 一种点云数据生成方法、装置、电子设备及存储介质 - Google Patents
一种点云数据生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116843846A CN116843846A CN202310742752.4A CN202310742752A CN116843846A CN 116843846 A CN116843846 A CN 116843846A CN 202310742752 A CN202310742752 A CN 202310742752A CN 116843846 A CN116843846 A CN 116843846A
- Authority
- CN
- China
- Prior art keywords
- depth image
- point
- dimensional
- map
- point cloud
- 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 77
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 238000001914 filtration Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 20
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual 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
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本申请实施例提供了一种点云数据生成方法、装置、电子设备及存储介质,涉及机器人技术领域。方法包括:获取机器人采集的所处环境的深度图像,作为待处理深度图像;对待处理深度图像中的点进行转换,得到多个第一三维点;从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点;其中,一个第二三维点对应的偏转值表示:该第二三维点相对于机器人在预设平面内的偏转角度;一个第二三维点对应的第一距离表示:该第二三维点与机器人在预设平面内的距离;基于目标三维点的相对位置数据,得到待处理深度图像的点云数据。如此,能够降低生成点云数据的成本,降低机器人运行过程中采集到的点云数据的存储量,减少内存压力。
Description
技术领域
本申请涉及机器人技术领域,特别是涉及一种点云数据生成方法、装置、电子设备及存储介质。
背景技术
随着机器人技术的快速发展,配置传感器(例如,雷达)的机器人可以在运动过程中,采集周围环境的点云数据,后续,可以根据点云数据构建针对周围环境的地图。例如,可以结合雷达采集到的点云数据,利用SLAM(Simultaneous LocalizationAnd Mapping,同步定位和建图)技术,构建针对周围环境的地图。
然而,由于雷达的成本较高,会增大生成点云数据的成本。
发明内容
本申请实施例的目的在于提供一种点云数据生成方法、装置、电子设备及存储介质,以降低生成点云数据的成本,降低机器人运行过程中采集到的点云数据的存储量,减少内存压力。具体技术方案如下:
本申请实施例的第一方面,首先提供了一种点云数据生成方法,所述方法包括:
获取机器人采集的所处环境的深度图像,作为待处理深度图像;
对所述待处理深度图像中的点进行转换,得到多个第一三维点;
从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点;其中,所述第二三维点为基于所述第一三维点确定的;一个第二三维点对应的偏转值表示:该第二三维点相对于所述机器人在预设平面内的偏转角度;一个第二三维点对应的第一距离表示:该第二三维点与所述机器人在所述预设平面内的距离;所述预设平面与所述机器人行驶的地面平行;
基于所述目标三维点的相对位置数据,得到所述待处理深度图像的点云数据;其中,所述相对位置数据表示:所述目标三维点在所述预设平面中的投影点与所述机器人在所述预设平面中的投影点的相对位置。
在一些实施例中,在所述从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点之前,所述方法还包括:
采用以下方式中的至少一种从所述第一三维点中确定所述第二三维点:
从所述第一三维点中,确定在垂直于所述预设平面的方向上位于指定高度内的三维点;其中,所述指定高度不低于所述机器人的高度;
基于点云滤波算法,对所述第一三维点进行滤波处理;
从所述第一三维点中,确定与所述机器人在所述预设平面内的距离小于预设距离的三维点。
在一些实施例中,在所述从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点之前,所述方法还包括:
针对每一第二三维点,确定该第二三维点相对于所述机器人在所述预设平面内的偏转角度;
计算所述偏转角度的值与预设数值的商,作为该第二三维点的偏转值。
在一些实施例中,所述预设数值的绝对值小于1。
在一些实施例中,所述方法还包括:
基于所述待处理深度图像的点云数据,以及采集所述待处理深度图像时所述机器人的初始位姿,在当前的点云地图中添加所述待处理深度图像对应的地图点。
在一些实施例中,所述方法还包括:
针对每一历史深度图像,若该历史深度图像与所述待处理深度图像具有共视关系,则基于所述待处理深度图像对应的初始位姿,利用同步定位和建图SLAM算法,对构建当前的点云地图时该历史深度图像对应的位姿进行优化,得到优化位姿;
基于该历史深度图像的点云数据,以及该历史深度图像对应的优化位姿,更新当前的点云地图中该历史深度图像对应的地图点。
在一些实施例中,针对当前的点云地图中的每一地图点,对应地记录有该地图点所属的深度图像的图像标识;
所述基于该历史深度图像的点云数据,以及该历史深度图像对应的优化位姿,更新当前的点云地图中该历史深度图像对应的地图点,包括:
从当前的点云地图中,删除对应的图像标识表示该历史深度图像对应的地图点;
基于该历史深度图像的点云数据和图像标识,以及该历史深度图像对应的优化位姿,在当前的点云地图中添加该历史深度图像对应的地图点。
在一些实施例中,针对当前的点云地图中的每一地图点,该地图点所属的深度图像的图像标识表示为该地图点的颜色。
本申请实施例的第二方面,首先提供了一种点云数据生成装置,所述装置包括:
深度图像采集设备,用于采集机器人所处环境的深度图像,作为待处理深度图像;
处理器,用于从所述深度图像采集设备获取所述待处理深度图像;
对所述待处理深度图像中的点进行转换,得到多个第一三维点;
从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点;其中,所述第二三维点为基于所述第一三维点确定的;一个第二三维点对应的偏转值表示:该第二三维点相对于所述机器人在预设平面内的偏转角度;一个第二三维点对应的第一距离表示:该第二三维点与所述机器人在所述预设平面内的距离;所述预设平面与所述机器人行驶的地面平行;
基于所述目标三维点的相对位置数据,得到所述待处理深度图像的点云数据;其中,所述相对位置数据表示:所述目标三维点在所述预设平面中的投影点与所述机器人在所述预设平面中的投影点的相对位置。
在一些实施例中,所述处理器,还用于:
在所述从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点之前,采用以下方式中的至少一种从所述第一三维点中确定所述第二三维点:
从所述第一三维点中,确定在垂直于所述预设平面的方向上位于指定高度内的三维点;其中,所述指定高度不低于所述机器人的高度;
基于点云滤波算法,对所述第一三维点进行滤波处理;
从所述第一三维点中,确定与所述机器人在所述预设平面内的距离小于预设距离的三维点。
在一些实施例中,所述处理器,还用于:
在所述从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点之前,针对每一第二三维点,确定该第二三维点相对于所述机器人在所述预设平面内的偏转角度;计算所述偏转角度的值与预设数值的商,作为该第二三维点的偏转值。
在一些实施例中,所述预设数值的绝对值小于1。
在一些实施例中,所述处理器,还用于:
基于所述待处理深度图像的点云数据,以及采集所述待处理深度图像时所述机器人的初始位姿,在当前的点云地图中添加所述待处理深度图像对应的地图点。
在一些实施例中,所述处理器,还用于:
针对每一历史深度图像,若该历史深度图像与所述待处理深度图像具有共视关系,则基于所述待处理深度图像对应的初始位姿,利用同步定位和建图SLAM算法,对构建当前的点云地图时该历史深度图像对应的位姿进行优化,得到优化位姿;
基于该历史深度图像的点云数据,以及该历史深度图像对应的优化位姿,更新当前的点云地图中该历史深度图像对应的地图点。
在一些实施例中,针对当前的点云地图中的每一地图点,对应地记录有该地图点所属的深度图像的图像标识;
所述处理器,具体用于:
从当前的点云地图中,删除对应的图像标识表示该历史深度图像对应的地图点;
基于该历史深度图像的点云数据和图像标识,以及该历史深度图像对应的优化位姿,在当前的点云地图中添加该历史深度图像对应的地图点。
在一些实施例中,针对当前的点云地图中的每一地图点,该地图点所属的深度图像的图像标识表示为该地图点的颜色。
本申请实施例的第三方面,提供了一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的点云数据生成方法。
本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的点云数据生成方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的点云数据生成方法。
本申请实施例有益效果:
本申请实施例提供了一种点云数据生成方法,方法包括:获取机器人采集的所处环境的深度图像,作为待处理深度图像;对待处理深度图像中的点进行转换,得到多个第一三维点;从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点;其中,第二三维点为基于第一三维点确定的;一个第二三维点对应的偏转值表示:该第二三维点相对于机器人在预设平面内的偏转角度;一个第二三维点对应的第一距离表示:该第二三维点与机器人在预设平面内的距离;预设平面与机器人行驶的地面平行;基于目标三维点的相对位置数据,得到待处理深度图像的点云数据;其中,相对位置数据表示:目标三维点在预设平面中的投影点与机器人在预设平面中的投影点的相对位置。
基于上述处理,可以在机器人行驶的过程中,对采集到的机器人所处环境的深度图像进行转换,得到深度图像对应的三维点,并对三维点进行筛选得到目标三维点,基于目标三维点的相对位置数据,得到待处理深度图像的点云数据。相关技术中利用机器人中的雷达生成点云数据时,针对某一与地面平行的平面,得到的是环境中的物体在该平面内距离机器人最近的各点相对于机器人的位置。而本申请提供的方案中,由于目标三维点的相对位置数据表示目标三维点在预设平面中的投影点与机器人在预设平面中的投影点的相对位置,如此,得到的待处理深度图像的点云数据能够模拟雷达生成的点云数据。也就是说,可以通过深度图像采集设备(例如深度相机)采集的深度图像,模拟通过雷达得到的点云数据,由于深度图像采集设备的成本较低,也就能够降低生成点云数据的成本。
另外,由于目标三维点的相对位置数据表示:目标三维点在预设平面中的投影点与机器人在预设平面中的投影点的相对位置。即,目标三维点的相对位置数据的类型是二维的,因此,基于目标三维点的相对位置数据得到待处理深度图像的点云数据为二维点云数据。相对于相关技术中对采集到的三维点云数据进行记录,本申请中对二维点云数据进行记录,能够降低机器人运行过程中采集到的点云数据的存储量,减少内存压力。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的点云数据生成方法的第一种流程示意图;
图2为本申请实施例提供的点云数据生成方法的第二种流程示意图;
图3为本申请实施例提供的深度图像的点云数据所表示的区域的示意图;
图4为本申请实施例提供的一种点云数据表示的点云的示意图;
图5为本申请实施例提供的确定目标三维点的示意图;
图6为本申请实施例提供的获取目标三维点的一种流程示意图;
图7为本申请实施例提供的点云数据生成方法的第三种流程示意图;
图8为本申请实施例提供的点云数据生成方法的第四种流程示意图;
图9为本申请实施例提供的一种点云地图的示意图;
图10为本申请实施例提供的生成点云数据的一种流程示意图;
图11为本申请实施例提供的更新点云地图的一种流程示意图;
图12为本申请实施例提供的一种点云数据生成装置的结构图;
图13为本申请实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
随着机器人技术的快速发展,配置传感器(例如,雷达)的机器人可以在运动过程中,采集周围环境的点云数据,后续,可以根据点云数据构建针对周围环境的地图。
例如,在无人工厂的场景中,机器人可以为工厂中用于执行搬运任务的机器人;在家庭环境中,机器人可以为用于全屋清洁的扫地机器人。
相应的,机器人可以结合雷达采集到的点云数据,利用SLAM技术,构建针对周围环境的地图。然而,由于雷达的成本较高,会增大生成点云数据的成本。
为了降低生成点云数据的成本,降低机器人运行过程中采集到的点云数据的存储量,减少内存压力,本申请实施例提供了一种点云数据生成方法。该方法可以应用于机器人,例如,可以应用于机器人中的处理器。也就是说,本申请中所提到的机器人对深度图像进行处理的过程,实际上为该处理器对深度图像进行处理的过程。机器人包括深度图像采集设备。其中,深度图像采集设备包括但不限于:双目视觉(Stereo Vision)相机、RGB-D(RedGreenBlue-Depth,红绿蓝-深度)相机以及结构光(Structured-light)相机中的任一种。
参见图1,图1为本申请实施例提供的点云数据生成方法的第一种流程示意图,该方法可以包括以下步骤:
S101:获取机器人采集的所处环境的深度图像,作为待处理深度图像。
S102:对待处理深度图像中的点进行转换,得到多个第一三维点。
S103:从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点。
其中,第二三维点为基于第一三维点确定的;一个第二三维点对应的偏转值表示:该第二三维点相对于机器人在预设平面内的偏转角度;一个第二三维点对应的第一距离表示:该第二三维点与机器人在预设平面内的距离;预设平面与机器人行驶的地面平行。
S104:基于目标三维点的相对位置数据,得到待处理深度图像的点云数据。
其中,相对位置数据表示:目标三维点在预设平面中的投影点与机器人在预设平面中的投影点的相对位置。
基于上述处理,可以在机器人行驶的过程中,对采集到的机器人所处环境的深度图像进行转换,得到深度图像对应的三维点,并对三维点进行筛选得到目标三维点,基于目标三维点的相对位置数据,得到待处理深度图像的点云数据。相关技术中利用机器人中的雷达生成点云数据时,针对某一与地面平行的平面,得到的是环境中的物体在该平面内距离机器人最近的各点相对于机器人的位置。而本申请提供的方案中,由于目标三维点的相对位置数据表示目标三维点在预设平面中的投影点与机器人在预设平面中的投影点的相对位置,如此,得到的待处理深度图像的点云数据能够模拟雷达生成的点云数据。也就是说,可以通过深度图像采集设备(例如深度相机)采集的深度图像,模拟通过雷达得到的点云数据,由于深度图像采集设备的成本较低,也就能够降低生成点云数据的成本。
另外,由于目标三维点的相对位置数据表示:目标三维点在预设平面中的投影点与机器人在预设平面中的投影点的相对位置。即,目标三维点的相对位置数据的类型是二维的,因此,基于目标三维点的相对位置数据得到待处理深度图像的点云数据为二维点云数据。相对于相关技术中对采集到的三维点云数据进行记录,本申请中对二维点云数据进行记录,能够降低机器人运行过程中采集到的点云数据的存储量,减少内存压力。
针对步骤S101,在机器人行驶的过程中,机器人可以获取深度图像采集设备采集到的表征机器人所处环境的任一深度图像,作为待处理深度图像。也就是说,在采集到每一深度图像后,均可以按照上述步骤S101-S104进行处理。
针对深度图像中的每一像素点,该像素点的像素值(即深度)表示:该像素点所表征的真实世界中的位置与深度图像采集设备之间的距离。其中,该像素点所表征的真实世界中的位置可以表示为物体上的一个点,例如,物体可以为墙壁或家具等对机器人行驶造成影响的障碍物。
可以理解的是,深度图像采集设备采集到的机器人所处环境的范围与深度图像采集设备相对于机器人的安装位置、角度,以及深度图像采集设备的硬件参数有关。例如,深度图像采集设备可以安装在机器人的顶部或正前方;深度图像采集设备的镜头方向可以与机器人的前进方向一致。
针对步骤S102,可以根据深度图像采集设备的内参,以及待处理深度图像中各像素点的像素值,对待处理深度图像中的每一像素点进行转换,得到该像素点对应的三维点(即第一三维点)的三维坐标。例如,针对待处理深度图像中的每一像素点,计算其在指定空间坐标系中的位置,作为该像素点对应的三维点的三维坐标。其中,指定空间坐标系可以为深度图像采集设备对应的相机坐标系(也可以称为第一空间坐标系),第一空间坐标系的坐标原点为深度图像采集设备的位置,包括:X轴、Y轴和Z轴。Z轴方向可以表示拍摄该深度图像时,深度图像采集设备的镜头方向;Y轴方向可以表示垂直于地面的方向;X轴与Z轴形成的平面(可以称为XOZ平面)。
针对步骤S103-S104,若要得到模拟雷达生成的点云数据,则可以结合第一三维点与机器人在一个平面(即本申请中的预设平面)内的投影点之间的位置关系,确定出一部分第一三维点(即本申请中的目标三维点)。其中,预设平面可以为与机器人行驶的地面平行的任一平面,或者,也可以为机器人行驶的地面,在此并不对预设平面的位置做具体限定。
可以理解的是,机器人中的雷达可以为单线雷达,单线雷达生成的点云数据是针对一个平行于地面的平面内,扫描到的物体的边界特征,即,得到的点云数据中不包含垂直地面方向(即Y轴方向)上的数据。或者,机器人中的雷达也可以为多线雷达,多线雷达生成的点云数据是在一定高度的空间内,扫描到的物体的边界特征,即,得到的点云数据中包含垂直地面方向(即Y轴方向)上的数据。然而,在根据雷达生成的点云数据得到用于机器人导航的点云地图时,可以忽略点云数据包含的垂直地面方向(即Y轴方向)上的数据。
因此,本申请在得到模拟雷达生成的点云数据时,可以忽略三维点的在垂直地面方向(即Y轴方向)的坐标值,即,针对每一三维点,可以只记录其他两个方向(即X轴和Z轴方向)上的坐标值,且根据该两个方向上的坐标值就可以确定该三维点的偏转角度以及第一距离,也就可以得到其相对位置数据。如此,能够减少记录各三维点所占用的存储空间。
本申请中,针对每一三维点记录的其他两个方向(即X轴和Z轴方向)上的坐标值可以称为该三维点的二维坐标。
可以理解的是,在本申请中,可以记录一个三维点的二维坐标,以表示其相对位置数据;或者,也可以记录该三维点的偏转角度以及第一距离,以表示其相对位置数据。
另外,预设平面也可以为上述第一空间坐标系中的XOZ平面。
针对任一三维点,可以结合该三维点投影至任一与地面平行的指定平面的投影结果,以及机器人投影至该指定平面的投影结果,计算该三维点的偏转角度。相应的,将该三维点投影至指定平面,得到该三维点在指定平面内的投影点(可以称为第一投影点);确定第一投影点与机器人在指定平面中的投影点的连线(可以称为第一连线),获取第一连线与深度图像采集设备的镜头方向之间形成的夹角的大小,作为该三维点的偏转角度。
例如,若指定平面为第一空间坐标系中的XOZ平面,针对三维坐标为(a,b,c)的三维点A,三维点A在预设平面内的投影点的二维坐标为(a,b),若a=b,则三维点A在预设平面内的投影点与机器人在预设平面中的投影点的连线可以表示为:z=x,该连线与Z轴的夹角为45°,即,三维点A相对于机器人在预设平面内的偏转角度为45°。
针对任一三维点,可以将该三维点投影至任一与地面平行的指定平面,得到该三维点在指定平面内的投影点(可以称为第二投影点);确定第二投影点与机器人在指定平面中的投影点的距离,作为三维点对应的第一距离。
例如,若指定平面为第一空间坐标系中的XOZ平面,针对上述三维点A,三维点A在预设平面内的投影点的二维坐标为(a,b),与机器人在预设平面中的投影点的二维坐标(0,0)的距离为即,三维点A对应的第一距离为/>
在本申请实施例中,第二三维点为基于第一三维点确定的。一种实现方式中,可以直接将第一三维点确定为第二三维点,即,不对第一三维点进行筛选,从所有第一三维点中确定目标三维点。
另一种实现方式中,可以从第一三维点中筛选一部分三维点,作为第二三维点。相应的,在步骤S103之前,该方法还包括:采用以下方式中的至少一种从第一三维点中确定第二三维点:
方式1:从第一三维点中,确定在垂直于预设平面的方向上位于指定高度内的三维点。其中,指定高度不低于机器人的高度。
在本申请实施例中,机器人行驶过程中,机器人通常需要关注可能对机器人行驶的路径造成影响的障碍物。且机器人在水平面上行驶时,其最高点相对于地面的高度是固定的(即机器人本身的高度)。可以理解的是,对于在真实世界中,所处的位置远高于机器人的高度的物体,并不会对机器人行驶的路径造成影响。因此,可以过滤第一三维点中,表征的真实世界中的位置较高的第一三维点,也就能够从第一三维点中确定与机器人的高度较为接近的三维点,作为第二三维点。
一种实现方式中,预设平面为第一空间坐标系中的XOZ平面。由于第一空间坐标系中的XOZ平面表示深度图像采集设备所处的平行于地面的平面,因此,需要根据深度图像采集设备在机器人中的安装位置,结合机器人自身的高度在第一空间坐标系中的Y轴方向的坐标值,确定指定高度。
例如,机器人的最高点在第一空间坐标系中的Y轴方向的坐标值为Y0,指定高度可以为Y0+N(N大于0)。针对三维坐标为(X1,Y1,Z1)的三维点A,以及三维坐标为(X1,Y2,Z1)的三维点B,若Y1<Y0,则可以将三维点A确定为第二三维点;若Y2>Y0,则可以删除记录的三维点B对应的数据。
基于上述处理,由于在真实世界中,所处的位置远高于机器人的高度的物体并不会对机器人行驶的路径造成影响。因此,筛除表征的真实世界中的位置高于深度图像采集设备一定高度的三维点,也就能够过滤掉不会对机器人行驶路径造成影响的三维点,如此,能够降低生成的点云数据的计算量,提高生成的点云数据的效率。
方式2:基于点云滤波算法,对第一三维点进行滤波处理。
在本申请实施例中,由于得到第一三维点中存在可能对生成的点云数据的准确度造成影响的三维点(可以称为干扰点)。例如,干扰点包括:表示噪声(noise)的噪声点、由于障碍物遮挡等问题造成的离群点(outliers)。因此,可以基于点云滤波算法,对第一三维点进行滤波处理。
例如,点云滤波算法可以为:统计滤波器(StatisticalOutlierRemoval)算法、条件滤波器算法(RadiusOutlierRemoval),以及半径滤波器(RadiusOutlierRemoval)算法。
如此,能够过滤掉可能对生成的点云数据的准确度造成影响的三维点,提高生成的点云数据的准确度,且由于减少了三维点的数量,能够降低生成的点云数据的计算量,提高生成的点云数据的效率。
方式3:从第一三维点中,确定与机器人在预设平面内的距离小于预设距离的三维点。
在本申请实施例中,机器人在得到待处理深度图像对应的第一三维点后,可以计算每一第一三维点对应的第一距离,具体计算的过程可以参考上述实施例中,针对任一三维点确定该三维点对应的第一距离的相关描述,在此不做赘述。
预设距离为技术人员根据深度图像采集设备的设备性能设置的。例如,深度图像采集设备的设备性能越优,预设距离可以设置越长。如,预设距离可以为2米。若第一三维点对应的第一距离不小于预设距离,则表示该第一三维点所表征的真实世界中的位置与机器人的位置较远。由于深度图像采集设备的设备性能有限,针对距离深度图像采集设备距离较远的位置,采集到的表征该位置的像素点的像素值可能存在较大的误差。相应的,根据该像素点的像素值确定的三维点的位置可能不准,进而导致生成的点云数据的准确度较低。若第一三维点对应的第一距离小于预设距离,则表示该第一三维点所表征的真实世界中的位置与机器人的位置较近。针对距离深度图像采集设备距离较近的位置,采集到的表征该位置的像素点的像素值较为准确。相应的,根据该像素点的像素值确定的三维点的位置也较为准确,也就能够保证生成的点云数据的准确度。因此,可以从第一三维点中,确定与机器人在预设平面内的距离小于预设距离的三维点,作为第二三维点。
如此,能够过滤掉表征的真实世界中的位置与机器人的位置较远的第一三维点,也就能够过滤掉可能对生成的点云数据的准确度造成影响的三维点,提高生成的点云数据的准确度,且由于减少了三维点的数量,能够降低生成的点云数据的计算量,提高生成的点云数据的效率。
另外,在筛选出第二三维点后,则可以删除第一三维点中除第二三维点以外的其他三维点对应的数据,能够减少机器人存储资源的浪费。
相关技术中,雷达生成一帧点云数据时,需要通过旋转式扫描的方式,获取每一角度下的前方障碍物的距离。
相应的,在本申请中,基于一种实现方式(可以称为方式一),第二三维点对应的偏转值可以用该第二三维点相对于机器人在预设平面内的偏转角度表示。进而,可以确定偏转值相同的第二三维点,也可以理解为偏转值相同的第二三维点属于一个组,相应的,从每组中确定对应的第一距离最小的第二三维点作为目标三维点。即,针对第二三维点,可以按照各第二三维点对应的偏转值,从偏转值一致的第二三维点中确定对应的第一距离最小的三维点,作为目标三维点。
然而现实场景中,可能会存在若干个第二三维点,该若干个第二三维点相对于机器人在预设平面内的偏转角度不同,但是其偏转角度的差异均较小。此时,若按照方式一进行处理,会导致确定的目标三维点中存在大量偏转角度极其接近的三维点。可以理解的是,若两个三维点的偏转角度极其接近,相应的,实际应用场景中,只需要根据其中一个三维点就可以得到相对准确的点云数据,即,另一个可以理解为冗余的三维点。
本申请中,为了避免上述情况,可以认为该若干个第二三维点的偏转值一致。相应的,采用方式二计算偏转值。如此,能够避免直接将偏转角度确定为偏转值,导致确定的目标三维点中存在大量偏转角度极其接近的冗余的三维点。
另一种实现方式中(可以称为方式二),如图2所示,图2为本申请实施例提供的点云数据生成方法的第二种流程示意图。在图1的基础上,在步骤S103之前,该方法还包括:
S105:针对每一第二三维点,确定该第二三维点相对于机器人在预设平面内的偏转角度。
S106:计算偏转角度的值与预设数值的商,作为该第二三维点的偏转值。
在本申请实施例中,针对每一第二三维点,确定该第二三维点相对于机器人在预设平面内的偏转角度的方式,可以参考上述实施例中针对任一三维点确定该三维点相对于机器人在预设平面内的偏转角度的方式,在此不做赘述。计算偏转角度的值与预设数值的商,作为该第二三维点的偏转值。进而,从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点。
可以理解的是,在按照方式二进行处理时,偏转值相同的任两个第二三维点的差值均小于预设数值。进而,针对偏转值相同的多个第二三维点,从中确定出的一个目标三维点,与其他三维点的偏转角度的差异均较小,保证该目标三维点能够体现该其他三维点的信息。
基于上述处理,能够根据偏转角度对第二三维点进行分组,针对每一组,可以从该组的第二三维点中确定一个用于生成点云数据的目标三维点。如此,能够降低生成的点云数据的计算量,提高生成的点云数据的效率。
如图3所示,图3为本申请实施例提供的深度图像的点云数据所表示的区域的示意图。
图3中的半圆形区域即深度图像的点云数据所表示的区域,该半圆形区域的角度范围表示机器人前方180°。Z轴方向表示拍摄该深度图像时,深度图像采集设备的镜头方向。X轴与Z轴垂直。该半圆形区域的原点O表示深度图像采集设备的位置。该半圆形区域的半径表示模拟的雷达进行旋转式扫描所能达到的范围,半径的长度与深度图像采集设备的性能有关。图3中的虚线表示模拟的雷达进行旋转式扫描时发射的激光线。图3中的线段1和2用于表示该深度图像中的物体,例如,物体可以为机器人通过走廊时采集到的位于机器人两侧的墙壁。
后续,可以生成该深度图像的点云数据。如图4所示,图4为本申请实施例提供的一种点云数据表示的点云的示意图。图4中白色填充的圆点和黑色填充的圆点均为:基于该深度图像确定的三维点在预设平面中的投影点,图4中黑色的点表示确定出的目标三维点在预设平面内的投影点。
在一些实施例中,预设数值的绝对值小于1。例如,预设数值可以为0.17。
可以理解的是,预设数值的绝对值越小,对第二三维点进行分组得到的组的数目越多,确定出的目标三维点的数目越多。例如,针对上述图3中,深度图像的点云数据所表示的半圆形区域,若预设数值为0.5,则确定出的目标三维点的数目不超过:180/0.5=360个;若预设数值为0.1,则确定出的目标三维点的数目不超过:180/0.1=1800个。
基于上述处理,可以根据实际需求设置预设数值,以使得确定出的目标三维点的数量不会过大,超过机器人的计算能力,也要保证具有足够的目标三维点,能够准确描述物体的边界形状。
目标三维点的相对位置数据表示:目标三维点在预设平面中的投影点与机器人在预设平面中的投影点的相对位置。
例如,任一目标三维点的相对位置数据可以包含:该目标三维点对应的第一距离,以及该目标三维点相对于机器人在预设平面内的偏转角度。或者,任一目标三维点的相对位置数据可以包含:该目标三维点的二维坐标。
相应的,待处理深度图像的点云数据包含:每一目标三维点的相对位置数据。
参见图5,图5为本申请实施例提供的确定目标三维点的示意图。
图5中,矩形1表示障碍物对应的点云数据投影至XOZ平面后对应的区域,虚线为模拟的雷达的激光线。虚线a与矩形1的交点分别为P点和Q点。机器人位于原点。P点的坐标为(Px,Pz),Q点的坐标为(Qx,Qz),W为P点相对于机器人在预设平面内的偏转角度。
由几何关系可知,W可以通过公式(1)计算得到:
P点对应的第一距离Dp可以通过公式(2)计算得到:
P点对应的偏转值Mp可以通过公式(3)计算得到:
其中,θ表示预设数值,表示向下取整,θ的绝对值小于1。例如,θ为0.17。
针对Q点对应的第一距离Dq和偏转值Mq的计算过程可以参考上述公式(1)-(3)。若Mp=Mq,且不存在对应的偏转值一致的其他点,由于Dp小于Dq,则可以将P点确定为目标三维点。
参见图6,图6为本申请实施例提供的获取目标三维点的一种流程示意图。
S601:获取视觉信息。
即,获取机器人采集的所处环境的深度图像,作为待处理深度图像。
S602:生成三维点云。
即,对待处理深度图像中的点进行转换,得到多个三维点。
S603:投影二维平面。
即,确定每一三维点对应的偏转值和第一距离。
其中,一个三维点对应的偏转值为:基于该三维点相对于机器人在预设平面内的偏转角得到的;一个三维点对应的第一距离表示:该第二三维点与机器人在预设平面内的距离。预设平面与机器人行驶的地面平行。
S604:选取最近点数据。
即,从偏转值一致的三维点中,确定对应的第一距离最小的三维点,作为目标三维点。
在一些实施例中,在得到待处理深度图像的点云数据后,可以构建机器人所处环境的点云地图。如图7所示,图7为本申请实施例提供的点云数据生成方法的第三种流程示意图。
在图1的基础上,该方法还包括:
S107:基于待处理深度图像的点云数据,以及采集待处理深度图像时机器人的初始位姿,在当前的点云地图中添加待处理深度图像对应的地图点。
机器人的位姿可以包括:机器人的位置和姿态,其中,位置表示为机器人在世界坐标系(可以称为第二空间坐标系)中的坐标,姿态表示为机器人的朝向。相应的,位置的变化可通过第二空间坐标系中X轴、Y轴、Z轴三个方向的平移表示,姿态的变化可通过第二空间坐标系中X轴、Y轴、Z轴三个方向的旋转表示。其中,第二空间坐标系中的Y轴方向表示:垂直于地面方向。在本申请实施例中,无需考虑机器人的位姿在Y轴方向上的变化。
在本申请实施例中,机器人还包括RGB(RedGreenBlue-Depth,红绿蓝)图像采集设备。例如,RGB图像采集设备可以为:RGB相机。
RGB图像采集设备与深度图像采集设备的采集方向一致,在深度图像采集设备采集一帧深度图像时,RGB图像采集设备采集一帧RGB图像,作为该深度图像对应的RGB图像。
每一帧深度图像都对应有一个采集该深度图像时机器人的初始位姿。
一种实现方式中,机器人可以通过安装在机器人上的行驶状态采集设备,获取采集待处理深度图像时机器人的初始位姿。其中,行驶状态采集设备可以包括:惯性测量单元(IMU,Inertial Measurement Unit)、轮速传感器等传感器设备。例如,可以基于待处理深度图像的上一帧深度图像的位姿,以及行驶状态采集设备采集到的机器人在X轴方向和Z轴方向的加速度和角速度,预测得到采集待处理深度图像时机器人的位姿(即初始位姿)。
另一种实现方式中,可以基于待处理深度图像的上一帧深度图像,以及待处理深度图像的上一帧深度图像对应的位姿,确定采集待处理深度图像时机器人的初始位姿。例如,可以对待处理深度图像对应的RGB图像(可以称为待处理RGB图像)进行特征点提取,并对待处理深度图像的上一帧深度图像对应的RGB图像(可以称为第一RGB图像)进行特征点提取。根据待处理RGB图像的特征点和第一RGB图像的特征点,结合待处理深度图像的上一帧深度图像对应的位姿,使用SLAM算法预测得到采集待处理深度图像时机器人的位姿(即初始位姿)。
在得到待处理深度图像的点云数据后,可以根据采集待处理深度图像时机器人的初始位姿,对待处理深度图像的点云数据进行坐标变换,确定待处理深度图像的点云数据表示的点映射至第二空间坐标系中对应的点(即地图点)的位置,即在当前的点云地图中添加待处理深度图像对应的地图点。其中,点云地图包含的地图点为三维点,且点云地图中每一三维点在Y轴方向上的值均为0。
如此,针对采集到的每一帧待处理深度图像,均基于上述步骤S107进行处理,也就能够在机器人行驶的过程中,将采集到的每一帧深度图像的点云数据统一至同一坐标系中,也就能够构建机器人所处环境的地图。
另外,本申请实施例中,生成深度图像的点云数据,以及根据深度图像的点云数据构建点云地图可以分别通过不同的进程实现,如此,使得机器人能够满足不同场景下的需求。
在一些实施例中,可以基于采集到的待处理深度图像,对当前的点云地图进行优化。如图8所示,图8为本申请实施例提供的点云数据生成方法的第四种流程示意图。在图7的基础上,该方法还包括:
S108:针对每一历史深度图像,若该历史深度图像与待处理深度图像具有共视关系,则基于待处理深度图像对应的初始位姿,利用SLAM(同步定位和建图)算法,对构建当前的点云地图时该历史深度图像对应的位姿进行优化,得到优化位姿。
S109:基于该历史深度图像的点云数据,以及该历史深度图像对应的优化位姿,更新当前的点云地图中该历史深度图像对应的地图点。
可以理解的是,随着机器人的行驶,针对真实世界中的同一位置,机器人可能会采集多帧均包含该位置的深度图像,也就是说,该多帧深度图像具有共视关系。历史深度图像表示在采集待处理深度图像之前采集到的深度图像。
一种实现方式中,针对每一历史深度图像,可以基于该历史深度图像对应的RGB图像,以及待处理深度图像对应的RGB图像,确定该历史深度图像与待处理深度图像是否具有共视关系。
例如,针对一帧历史深度图像,可以对该历史深度图像对应的RGB图像(可以称为历史RGB图像)进行特征点提取,获取该历史RGB图像包含的特征点。另外,可以对待处理深度图像对应的RGB图像(即待处理RGB图像)进行特征点提取,获取待处理RGB图像包含的特征点。若待处理RGB图像和该历史RGB图像包含的匹配的特征点的数目大于预设数目(如100),则确定待处理RGB图像和该历史RGB图像具有共视关系,进而,可以确定该历史深度图像与待处理深度图像具有共视关系。
在本申请实施例中,由于在当前的点云地图中添加待处理深度图像对应的地图点时,使用的是根据上一帧历史深度图像对应的位姿,预测得到的采集待处理深度图像对应的初始位姿。然而,上一帧历史深度图像对应的位姿可能不准确,因此,可以结合待处理深度图像对上一帧历史深度图像对应的位姿进行优化。并根据历史深度图像优化后的位姿对点云地图进行更新,以提高点云地图的准确度。
相应的,针对采集到的待处理深度图像,可以确定与该处理深度图像具有共视关系的历史深度图像。其中,与该处理深度图像具有共视关系的历史深度图像可能包含多帧。
针对一帧深度图像,在构建点云地图的过程中,可能会对该深度图像对应的位姿进行多次优化。也就是说,针对任一历史深度图像,当前的点云地图中该历史深度图像对应的地图点,可能为基于该历史深度图像的初始位姿确定的,也可能为基于该历史深度图像一次优化或者多次优化后的位姿确定的。
在本申请实施例中并不对所使用的SLAM算法进行限定。其中,SLAM算法可以为:ORB(Oriented FAST and Rotated BRIEF,特征点以及特征描述)-SLAM3、ORB-SLAM2算法等。
一种实现方式中,可以通过回环检测(Loop Closure),或非线性局部优化的方式,得到与待处理深度图像具有共视关系的历史深度图像对应的优化位姿。
基于上述处理,可以对构建当前的点云地图所使用的历史深度图像的位姿进行优化,并基于优化后的位姿,以及历史深度图像的点云数据,更新点云地图中历史深度图像对应的地图点。如此,能够提高点云地图的准确度。
在一些实施例中,针对当前的点云地图中的每一地图点,对应地记录有该地图点所属的深度图像的图像标识。相应的,步骤S109包括:
步骤1:从当前的点云地图中,删除对应的图像标识表示该历史深度图像对应的地图点。
步骤2:基于该历史深度图像的点云数据和图像标识,以及该历史深度图像对应的优化位姿,在当前的点云地图中添加该历史深度图像对应的地图点。
在本申请实施例中,针对每一深度图像,在当前的点云地图中添加该深度图像对应的地图点时,可以记录该深度图像对应的地图点与该深度图像的图像标识之间的对应关系。如此,针对当前的点云地图中的每一地图点,对应地记录有该地图点所属的深度图像的图像标识。
例如,深度图像的图像标识可以为:深度图像采集设备在采集到该深度图像时,该深度图像的帧序号。
相应的,从当前的点云地图中,删除对应的图像标识表示该历史深度图像对应的地图点。即,在得到该历史深度图像对应的优化位姿后,可以确定该历史深度图像的图像标识(可以称为第一标识),进而,从当前的点云地图中删除对应的图像标识为第一标识的地图点。
然后,并在删除后的点云地图中重新基于该历史深度图像的点云数据,以及该历史深度图像对应的优化位姿,在当前的点云地图中添加该历史深度图像对应的地图点(可以称为第一地图点),并记录第一地图点对应的图像标识为第一标识。
可见,本申请实施例可以删除点云地图中基于优化前的位姿添加的历史深度图像对应的地图点,并添加基于优化位姿得到的地图点。如此,能够进一步提高点云地图的准确度,降低点云地图所占的存储空间。
一种实现方式中,针对当前的点云地图中的每一地图点,该地图点所属的深度图像的图像标识表示为该地图点的颜色。
针对任一深度图像,可以以该深度图像的帧序号为颜色值,也就能够确定该深度图像对应的三维点的颜色,以及该深度图像对应的地图点的颜色。其中,地图点的颜色可以通过RGB(Red,Green,andBlue,红绿蓝)各通道的值表示。
可以理解的是,由于任一通道的值的取值范围为[0,256],因此,点云地图中包含的地图点的颜色至多有:256×256×256=16777216种。实际场景中,点云地图中包含的地图点的颜色的种类远远大于机器人在行驶过程中采集到的深度图像的数量,因此,可以使用地图点的颜色表示该地图点所属的深度图像的图像标识。
由于针对点云地图的任一地图点,其属性信息包含该地图点的颜色。如此,可以直接在点云地图中,通过设置地图点的颜色,记录该地图点所属的深度图像的图像标识,而无需设置除地图点的属性信息以外的其他参数来表示其所属的深度图像的图像标识,也就能够充分利用地图点的属性信息,进而,能够避免存储空间的浪费。
如图9所示,图9为本申请实施例提供的一种点云地图的示意图。图9中,一种形状的图形表示一种颜色的地图点。其中,白色填充的圆、白色填充的三角形,以及白色填充的星形,分别表示不同深度图像对应的地图点。
另外,本申请实施例可以通过颜色索引的方法,快速确定点云地图中各深度图像对应的地图点,以对局部的点云数据进行更新,而无需对整个点云地图进行更新,能够减少更新点云地图所消耗的计算量,提高更新点云地图的效率。
如图10所示,图10为本申请实施例提供的生成点云数据的一种流程示意图。
S1001:插入关键帧。
即,获取机器人采集的所处环境的深度图像。
S1002:生成点云图。
即,对该深度图像中的点进行转换,得到多个第一三维点。
S1003:滤波。
即,基于点云滤波算法,对第一三维点进行滤波处理,得到第二三维点。
S1004:依据关键帧序号赋予颜色。
即,将该深度图像的帧序号,确定为该深度图像对应的第二三维点的颜色。
S1005:模拟雷达的二维点云数据。
即,从第二三维点中确定目标三维点,得到深度图像的点云数据。
如图11所示,图11为本申请实施例提供的更新点云地图的一种流程示意图。图11中包线程:Slam(同步定位和建图)线程和建图线程。
其中,Slam线程可以为机器人的处理器中的线程。Slam线程可以按照上述步骤S101-S104生成采集到的每一深度图像的点云数据。
建图线程可以为机器人的处理器中的线程,或者,也可以为后端服务器中的线程;其中,服务器可以与机器人建立通信连接。建图线程可以按照上述步骤S107-S109生成并更新点云地图。
相应的,Slam线程:
S1101:保存更新后的关键帧和id(标识)。
即,在获取采集到的一帧深度图像(即待处理深度图像)之后,可以确定出与待处理深度图像具有共视关系的历史深度图像(可以称为第一历史深度图像)。进而,可以按照上述步骤S108得到各第一历史深度图像对应的优化位姿。并将各第一历史深度图像的id(Iden tity document,身份标识号)即帧序号,以及各第一历史深度图像对应的优化位姿记录在容器中。
建图线程:
S1102:获取容器。
即,从容器中获取各第一历史深度图像的帧序号,以及各第一历史深度图像对应的优化位姿。
S1103:判断关键帧是否更新。若是,则执行S1104。若否,则不做处理。
即,针对每一第一历史深度图像,判断该第一历史深度图像对应的优化位姿与构建当前的点云地图时该第一历史深度图像对应的位姿是否一致,若不一致,则表示关键帧发生更新。
S1104:依据id和位姿重新生成点云。
即,基于该第一历史深度图像的点云数据,以及该第一历史深度图像对应的优化位姿,确定在当前的点云地图中,该第一历史深度图像对应的地图点(可以称为第二地图点)的坐标。基于该第一历史深度图像的帧序号(图像标识),确定第二地图点的颜色。
S1105:依据id和颜色索引删除更新前点云数据。
即,根据记录的每一地图点所属的深度图像的图像标识,从当前的点云地图中删除对应的图像标识表示该第一历史深度图像的地图点。其中,该地图点所属的深度图像的图像标识表示为该地图点的颜色。
S1106:将新生成的点云数据添加到整体点云中。
即,基于第二地图点的坐标颜色,在当前的点云地图中添加第二地图点。
基于相同的发明构思,本申请实施例还提供了一种点云数据生成装置。参见图12,图12为本申请实施例提供的一种点云数据生成装置的结构图,所述装置包括:
深度图像采集设备1201,用于采集机器人所处环境的深度图像,作为待处理深度图像;
处理器1202,用于从所述深度图像采集设备1201获取所述待处理深度图像;
对所述待处理深度图像中的点进行转换,得到多个第一三维点;
从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点;其中,所述第二三维点为基于所述第一三维点确定的;一个第二三维点对应的偏转值表示:该第二三维点相对于所述机器人在预设平面内的偏转角度;一个第二三维点对应的第一距离表示:该第二三维点与所述机器人在所述预设平面内的距离;所述预设平面与所述机器人行驶的地面平行;
基于所述目标三维点的相对位置数据,得到所述待处理深度图像的点云数据;其中,所述相对位置数据表示:所述目标三维点在所述预设平面中的投影点与所述机器人在所述预设平面中的投影点的相对位置。
在一些实施例中,所述处理器,还用于:
在所述从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点之前,采用以下方式中的至少一种从所述第一三维点中确定所述第二三维点:
从所述第一三维点中,确定在垂直于所述预设平面的方向上位于指定高度内的三维点;其中,所述指定高度不低于所述机器人的高度;
基于点云滤波算法,对所述第一三维点进行滤波处理;
从所述第一三维点中,确定与所述机器人在所述预设平面内的距离小于预设距离的三维点。
在一些实施例中,所述处理器,还用于:
在所述从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点之前,针对每一第二三维点,确定该第二三维点相对于所述机器人在所述预设平面内的偏转角度;计算所述偏转角度的值与预设数值的商,作为该第二三维点的偏转值。
在一些实施例中,所述预设数值的绝对值小于1。
在一些实施例中,所述处理器,还用于:
基于所述待处理深度图像的点云数据,以及采集所述待处理深度图像时所述机器人的初始位姿,在当前的点云地图中添加所述待处理深度图像对应的地图点。
在一些实施例中,所述处理器,还用于:
针对每一历史深度图像,若该历史深度图像与所述待处理深度图像具有共视关系,则基于所述待处理深度图像对应的初始位姿,利用同步定位和建图SLAM算法,对构建当前的点云地图时该历史深度图像对应的位姿进行优化,得到优化位姿;
基于该历史深度图像的点云数据,以及该历史深度图像对应的优化位姿,更新当前的点云地图中该历史深度图像对应的地图点。
在一些实施例中,针对当前的点云地图中的每一地图点,对应地记录有该地图点所属的深度图像的图像标识;
所述处理器,具体用于:
从当前的点云地图中,删除对应的图像标识表示该历史深度图像对应的地图点;
基于该历史深度图像的点云数据和图像标识,以及该历史深度图像对应的优化位姿,在当前的点云地图中添加该历史深度图像对应的地图点。
在一些实施例中,针对当前的点云地图中的每一地图点,该地图点所属的深度图像的图像标识表示为该地图点的颜色。
本申请实施例还提供了一种电子设备,如图13所示,包括:
存储器1301,用于存放计算机程序;
处理器1302,用于执行存储器1301上所存放的程序时,实现上述实施例中任一点云数据生成方法的步骤。
并且上述电子设备还可以包括通信总线和/或通信接口,处理器1302、通信接口、存储器1301通过通信总线完成相互间的通信。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一点云数据生成方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一点云数据生成方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者存储介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (18)
1.一种点云数据生成方法,其特征在于,所述方法包括:
获取机器人采集的所处环境的深度图像,作为待处理深度图像;
对所述待处理深度图像中的点进行转换,得到多个第一三维点;
从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点;其中,所述第二三维点为基于所述第一三维点确定的;一个第二三维点对应的偏转值表示:该第二三维点相对于所述机器人在预设平面内的偏转角度;一个第二三维点对应的第一距离表示:该第二三维点与所述机器人在所述预设平面内的距离;所述预设平面与所述机器人行驶的地面平行;
基于所述目标三维点的相对位置数据,得到所述待处理深度图像的点云数据;其中,所述相对位置数据表示:所述目标三维点在所述预设平面中的投影点与所述机器人在所述预设平面中的投影点的相对位置。
2.根据权利要求1所述的方法,其特征在于,在所述从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点之前,所述方法还包括:
采用以下方式中的至少一种从所述第一三维点中确定所述第二三维点:
从所述第一三维点中,确定在垂直于所述预设平面的方向上位于指定高度内的三维点;其中,所述指定高度不低于所述机器人的高度;
基于点云滤波算法,对所述第一三维点进行滤波处理;
从所述第一三维点中,确定与所述机器人在所述预设平面内的距离小于预设距离的三维点。
3.根据权利要求1所述的方法,其特征在于,在所述从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点之前,所述方法还包括:
针对每一第二三维点,确定该第二三维点相对于所述机器人在所述预设平面内的偏转角度;
计算所述偏转角度的值与预设数值的商,作为该第二三维点的偏转值。
4.根据权利要求3所述的方法,其特征在于,所述预设数值的绝对值小于1。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述待处理深度图像的点云数据,以及采集所述待处理深度图像时所述机器人的初始位姿,在当前的点云地图中添加所述待处理深度图像对应的地图点。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
针对每一历史深度图像,若该历史深度图像与所述待处理深度图像具有共视关系,则基于所述待处理深度图像对应的初始位姿,利用同步定位和建图SLAM算法,对构建当前的点云地图时该历史深度图像对应的位姿进行优化,得到优化位姿;
基于该历史深度图像的点云数据,以及该历史深度图像对应的优化位姿,更新当前的点云地图中该历史深度图像对应的地图点。
7.根据权利要求6所述的方法,其特征在于,针对当前的点云地图中的每一地图点,对应地记录有该地图点所属的深度图像的图像标识;
所述基于该历史深度图像的点云数据,以及该历史深度图像对应的优化位姿,更新当前的点云地图中该历史深度图像对应的地图点,包括:
从当前的点云地图中,删除对应的图像标识表示该历史深度图像对应的地图点;
基于该历史深度图像的点云数据和图像标识,以及该历史深度图像对应的优化位姿,在当前的点云地图中添加该历史深度图像对应的地图点。
8.根据权利要求7所述的方法,其特征在于,针对当前的点云地图中的每一地图点,该地图点所属的深度图像的图像标识表示为该地图点的颜色。
9.一种点云数据生成装置,其特征在于,所述装置包括:
深度图像采集设备,用于采集机器人所处环境的深度图像,作为待处理深度图像;
处理器,用于从所述深度图像采集设备获取所述待处理深度图像;对所述待处理深度图像中的点进行转换,得到多个第一三维点;从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点;其中,所述第二三维点为基于所述第一三维点确定的;一个第二三维点对应的偏转值表示:该第二三维点相对于所述机器人在预设平面内的偏转角度;一个第二三维点对应的第一距离表示:该第二三维点与所述机器人在所述预设平面内的距离;所述预设平面与所述机器人行驶的地面平行;基于所述目标三维点的相对位置数据,得到所述待处理深度图像的点云数据;其中,所述相对位置数据表示:所述目标三维点在所述预设平面中的投影点与所述机器人在所述预设平面中的投影点的相对位置。
10.根据权利要求9所述的装置,其特征在于,所述处理器,还用于:
在所述从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点之前,采用以下方式中的至少一种从所述第一三维点中确定所述第二三维点:
从所述第一三维点中,确定在垂直于所述预设平面的方向上位于指定高度内的三维点;其中,所述指定高度不低于所述机器人的高度;
基于点云滤波算法,对所述第一三维点进行滤波处理;
从所述第一三维点中,确定与所述机器人在所述预设平面内的距离小于预设距离的三维点。
11.根据权利要求9所述的装置,其特征在于,所述处理器,还用于:
在所述从偏转值一致的第二三维点中,确定对应的第一距离最小的三维点,作为目标三维点之前,针对每一第二三维点,确定该第二三维点相对于所述机器人在所述预设平面内的偏转角度;计算所述偏转角度的值与预设数值的商,作为该第二三维点的偏转值。
12.根据权利要求11所述的装置,其特征在于,所述预设数值的绝对值小于1。
13.根据权利要求9所述的装置,其特征在于,所述处理器,还用于:
基于所述待处理深度图像的点云数据,以及采集所述待处理深度图像时所述机器人的初始位姿,在当前的点云地图中添加所述待处理深度图像对应的地图点。
14.根据权利要求13所述的装置,其特征在于,所述处理器,还用于:
针对每一历史深度图像,若该历史深度图像与所述待处理深度图像具有共视关系,则基于所述待处理深度图像对应的初始位姿,利用同步定位和建图SLAM算法,对构建当前的点云地图时该历史深度图像对应的位姿进行优化,得到优化位姿;
基于该历史深度图像的点云数据,以及该历史深度图像对应的优化位姿,更新当前的点云地图中该历史深度图像对应的地图点。
15.根据权利要求14所述的装置,其特征在于,针对当前的点云地图中的每一地图点,对应地记录有该地图点所属的深度图像的图像标识;
所述处理器,具体用于:
从当前的点云地图中,删除对应的图像标识表示该历史深度图像对应的地图点;
基于该历史深度图像的点云数据和图像标识,以及该历史深度图像对应的优化位姿,在当前的点云地图中添加该历史深度图像对应的地图点。
16.根据权利要求15所述的装置,其特征在于,针对当前的点云地图中的每一地图点,该地图点所属的深度图像的图像标识表示为该地图点的颜色。
17.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310742752.4A CN116843846A (zh) | 2023-06-21 | 2023-06-21 | 一种点云数据生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310742752.4A CN116843846A (zh) | 2023-06-21 | 2023-06-21 | 一种点云数据生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116843846A true CN116843846A (zh) | 2023-10-03 |
Family
ID=88171791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310742752.4A Pending CN116843846A (zh) | 2023-06-21 | 2023-06-21 | 一种点云数据生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116843846A (zh) |
-
2023
- 2023-06-21 CN CN202310742752.4A patent/CN116843846A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109737974B (zh) | 一种3d导航语义地图更新方法、装置及设备 | |
CN110031824B (zh) | 激光雷达联合标定方法及装置 | |
CN108319655B (zh) | 用于生成栅格地图的方法和装置 | |
CN109918977B (zh) | 确定空闲车位的方法、装置及设备 | |
CN111862214B (zh) | 计算机设备定位方法、装置、计算机设备和存储介质 | |
CN110764110B (zh) | 路径导航方法、装置及计算机可读存储介质 | |
CN112700486B (zh) | 对图像中路面车道线的深度进行估计的方法及装置 | |
CN111369680B (zh) | 生成建筑物的三维图像的方法及装置 | |
CN114662587B (zh) | 一种基于激光雷达的三维目标感知方法、装置及系统 | |
CN116091724A (zh) | 一种建筑数字孪生建模方法 | |
US8977074B1 (en) | Urban geometry estimation from laser measurements | |
CN114842106A (zh) | 栅格地图的构建方法及构建装置、自行走装置、存储介质 | |
CN112381873B (zh) | 一种数据标注方法及装置 | |
CN115019167B (zh) | 基于移动终端的融合定位方法、系统、设备及存储介质 | |
CN116358528A (zh) | 地图更新方法、地图更新装置、自移动设备及存储介质 | |
CN116843846A (zh) | 一种点云数据生成方法、装置、电子设备及存储介质 | |
CN115507840A (zh) | 一种栅格地图构建方法、栅格地图构建装置及电子设备 | |
KR102438490B1 (ko) | 단일 체커보드를 이용하는 이종 센서 캘리브레이션 방법 및 장치 | |
CN114577216A (zh) | 导航地图构建方法、装置、机器人及存储介质 | |
KR20230029981A (ko) | 포즈 결정을 위한 시스템 및 방법 | |
CN118149797B (zh) | 栅格地图构建方法、装置、计算机设备及存储介质 | |
CN116804551A (zh) | 移动机器人导航地图生成方法、设备、介质及移动机器人 | |
CN113313764B (zh) | 定位方法、装置、电子设备和存储介质 | |
CN117788593B (zh) | 剔除三维激光数据中动态点的方法、装置、介质及设备 | |
CN113075716B (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 |