一种检测方法、装置、计算机设备和存储介质
技术领域
本公开涉及点云处理以及物体检测
技术领域
,具体而言,涉及一种检测方法、装置、计算机设备和存储介质。背景技术
当机器人在狭窄的货架巷道中运行时,机器人两侧货架上一些超出货架部分的货物会与机器人发生碰撞,影响机器人的正常运行。通常情况下,货物超出部分的体积较小,货物超出部分与货架紧密连接,通过对采集到的点云数据聚类,无法分割出与货架紧密连接的具有较小体积的货物超出部分,只会认为该货物超出部分与货架是一体的,因此无法实现准确分割,导致机器人环境感知力降低,不能完成精准避障,在发生碰撞时,容易损坏机器人,增加机器人维护成本。
发明内容
本公开实施例至少提供一种检测方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种检测方法,包括:
获取目标环境中的第一点云数据以及目标对象的目标几何特征;
基于所述目标几何特征从所述第一点云数据中筛选属于所述目标对象的第一目标点云数据,并对除所述第一目标点云数据之外的第一点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据;
基于所述第二目标点云数据和所述第一目标点云数据,确定每个其他对象与所述目标对象的位置关系信息;
基于所述位置关系信息,从所述其他对象中筛选位于所述目标对象上,并且超出所述目标对象至少预设距离的第一障碍物。
一种可选的实施方式中,所述基于所述目标几何特征从所述第一点云数据中筛选属于所述目标对象的第一目标点云数据,包括:
获取预先设置的所述目标几何特征的拟合范围;
基于所述拟合范围和所述目标几何特征,拟合属于所述目标对象的第一点云数据,确定所述第一目标点云数据。
一种可选的实施方式中,所述其他对象包括位于相邻两个目标对象之间的对象;
所述对除所述第一目标点云数据之外的第一点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据,包括:
基于所述第一目标点云数据,从所述第一点云数据中筛选位于两个相邻目标对象之间的第二点云数据;
对所述第二点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据。
一种可选的实施方式中,所述对除所述第一目标点云数据之外的第一点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据,包括:
基于所述第一目标点云数据,确定所述目标对象的边缘位置信息;
基于所述边缘位置信息,从所述第一点云数据中剔除未位于两个相邻目标对象之间的点云数据,将剔除后剩余的点云数据作为第三点云数据;
对所述第三点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据。
一种可选的实施方式中,所述位置关系信息包括以下至少一项:所述其他对象在所述目标对象上;所述其他对象位于所述目标对象上、并且超出所述目标对象;所述其他对象未在所述目标对象上。
一种可选的实施方式中,所述基于所述位置关系信息,从所述其他对象中筛选位于所述目标对象上,并且超出所述目标对象至少预设距离的第一障碍物,包括:
在所述位置关系信息指示所述其他对象位于所述目标对象上、并且超出所述目标对象的情况下,确定所述其他对象在预设方向上超出目标对象的长度;
在所述长度大于所述预设距离时,将所述其他对象作为所述第一障碍物。
一种可选的实施方式中,在基于所述第二目标点云数据和所述第一目标点云数据,确定每个其他对象与所述目标对象的位置关系信息之后,还包括:
在所述位置关系信息指示所述其他对象未在所述目标对象上的情况下,将在所述目标对象外的其他对象作为第二障碍物。
一种可选的实施方式中,所述目标对象包括货架;所述目标几何特征包括所述货架的预设平面的特征;所述预设平面包括所述货架的与货物进出口方向和/或水平面垂直的平面。
一种可选的实施方式中,所述目标对象包括地面;所述目标几何特征包括地平面特征;所述检测方法还包括:
基于所述其他对象与所述地面的位置关系信息,从所述其他对象中筛选位于所述地面上的第二障碍物。
一种可选的实施方式中,在基于所述位置关系信息,从所述其他对象中筛选位于所述目标对象上,并且超出所述目标对象预设距离的第一障碍物之后,还包括:
基于所述第一障碍物的第二目标点云数据,确定所述第一障碍物在所述目标环境中的第一位置信息,以使移动装置基于所述第一位置信息躲避所述第一障碍物;和/或
基于所述第二障碍物的第二目标点云数据,确定所述第二障碍物在所述目标环境中的第二位置信息,以使移动装置基于所述第二位置信息躲避所述第二障碍物。
第二方面,本公开实施例还提供一种检测装置,包括:
数据获取模块,用于获取目标环境中的第一点云数据以及目标对象的目标几何特征;
筛选分割模块,用于基于所述目标几何特征从所述第一点云数据中筛选属于所述目标对象的第一目标点云数据,并对除所述第一目标点云数据之外的第一点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据;
信息确定模块,用于基于所述第二目标点云数据和所述第一目标点云数据,确定每个其他对象与所述目标对象的位置关系信息;
对象筛选模块,用于基于所述位置关系信息,从所述其他对象中筛选位于所述目标对象上,并且超出所述目标对象至少预设距离的第一障碍物。
一种可选的实施方式中,所述筛选分割模块,用于获取预先设置的所述目标几何特征的拟合范围;基于所述拟合范围和所述目标几何特征,拟合属于所述目标对象的第一点云数据,确定所述第一目标点云数据。
一种可选的实施方式中,所述其他对象包括位于相邻两个目标对象之间的对象;
所述筛选分割模块,用于基于所述第一目标点云数据,从所述第一点云数据中筛选位于两个相邻目标对象之间的第二点云数据;对所述第二点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据。
一种可选的实施方式中,所述筛选分割模块,用于基于所述第一目标点云数据,确定所述目标对象的边缘位置信息;基于所述边缘位置信息,从所述第一点云数据中剔除未位于两个相邻目标对象之间的点云数据,将剔除后剩余的点云数据作为第三点云数据;对所述第三点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据。
一种可选的实施方式中,所述位置关系信息包括以下至少一项:所述其他对象在所述目标对象上;所述其他对象位于所述目标对象上、并且超出所述目标对象;所述其他对象未在所述目标对象上。
一种可选的实施方式中,所述对象筛选模块,用于在所述位置关系信息指示所述其他对象位于所述目标对象上、并且超出所述目标对象的情况下,确定所述其他对象在预设方向上超出目标对象的长度;在所述长度大于所述预设距离时,将所述其他对象作为所述第一障碍物。
一种可选的实施方式中,所述对象筛选模块,还用于在基于所述第二目标点云数据和所述第一目标点云数据,确定每个其他对象与所述目标对象的位置关系信息之后,在所述位置关系信息指示所述其他对象未在所述目标对象上的情况下,将在所述目标对象外的其他对象作为第二障碍物。
一种可选的实施方式中,所述目标对象包括货架;所述目标几何特征包括所述货架的预设平面的特征;所述预设平面包括所述货架的与货物进出口方向和/或水平面垂直的平面。
一种可选的实施方式中,所述目标对象包括地面;所述目标几何特征包括地平面特征;所述对象筛选模块,还用于基于所述其他对象与所述地面的位置关系信息,从所述其他对象中筛选位于所述地面上的第二障碍物。
一种可选的实施方式中,所述检测装置还包括避障处理模块,用于在基于所述位置关系信息,从所述其他对象中筛选位于所述目标对象上,并且超出所述目标对象预设距离的第一障碍物之后,基于所述第一障碍物的第二目标点云数据,确定所述第一障碍物在所述目标环境中的第一位置信息,以使移动装置基于所述第一位置信息躲避所述第一障碍物;和/或,基于所述第二障碍物的第二目标点云数据,确定所述第二障碍物在所述目标环境中的第二位置信息,以使移动装置基于所述第二位置信息躲避所述第二障碍物。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述检测装置、计算机设备、及计算机可读存储介质的效果描述参见上述检测方法的说明,这里不再赘述。
本公开实施例提供的检测方法、装置、计算机设备和存储介质,通过获取目标环境中的第一点云数据以及目标对象的目标几何特征;基于目标几何特征从第一点云数据中筛选属于目标对象的第一目标点云数据,并对除第一目标点云数据之外的第一点云数据进行对象分割,得到除目标对象以外的其他对象的第二目标点云数据;基于第二目标点云数据和第一目标点云数据,确定每个其他对象与目标对象的位置关系信息;基于位置关系信息,从其他对象中筛选位于目标对象上,并且超出目标对象至少预设距离的第一障碍物,与现有技术中的无法分割出与货架紧密连接的具有较小体积的货物超出部分相比,其利用了目标几何特征,该目标几何特征属于目标对象的唯一几何特征,不包括不属于目标对象的特征,比如,货架平面特征不包括超出货架的较小体积货物的特征。利用目标对象的目标几何特征,能够准确地分割出属于目标对象的第一目标点云数据和属于其他对象的第二目标点云数据,之后,利用每个其他对象与目标对象的位置关系信息,就能够准确地分辨出哪些其他对象属于第一障碍物。
进一步,本公开实施例提供的检测方法、装置、计算机设备和存储介质,通过获取预先设置的目标几何特征的拟合范围;基于拟合范围和目标几何特征,拟合属于目标对象的第一点云数据,确定第一目标点云数据。其在拟合范围内拟合属于目标对象的第一点云数据,能够进一步提高确定的第一目标点云数据的准确性。
进一步,本公开实施例提供的检测方法、装置、计算机设备和存储介质,在其他对象包括位于相邻两个目标对象之间的对象的情况下,基于第一目标点云数据,从第一点云数据中筛选位于两个相邻目标对象之间的第二点云数据;对第二点云数据进行对象分割,得到除目标对象以外的其他对象的第二目标点云数据。其中,第二点云数据为除第一目标点云数据之外的第一点云数据的子集,仅针对筛选出的第二点云数据进行对象分割,与对除第一目标点云数据之外的第一点云数据进行对象分割处理相比,能够减少对象分割量,提高分割效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种检测方法的流程图;
图2示出了本公开实施例所提供的目标环境的示意图;
图3示出了本公开实施例所提供的拟合第一点云数据,确定第一目标点云数据的流程图;
图4示出了本公开实施例所提供的机器人进行环境感知与避障的流程示意图;
图5示出了本公开实施例所提供的一种检测装置的示意图;
图6示出了本公开实施例所提供的一种计算机设备结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,当机器人在狭窄的货架巷道中运行时,机器人两侧货架上一些超出货架部分的货物会与机器人发生碰撞,影响机器人的正常运行。通常情况下,货物超出部分的体积较小,货物超出部分与货架紧密连接,通过对采集到的点云数据聚类,无法分割出与货架紧密连接的具有较小体积的货物超出部分,只会认为该货物超出部分与货架是一体的,因此无法实现准确分割,导致机器人环境感知力降低,不能完成精准避障,在发生碰撞时,容易损坏机器人,增加机器人维护成本。
基于上述研究,本公开提供了一种检测方法、装置、计算机设备和存储介质,其利用了目标几何特征,该目标几何特征属于目标对象的唯一几何特征,不包括不属于目标对象的特征,比如,货架平面特征不包括超出货架的较小体积货物的特征。利用目标对象的目标几何特征,能够准确地分割出属于目标对象的第一目标点云数据和属于其他对象的第二目标点云数据,之后,利用每个其他对象与目标对象的位置关系信息,就能够准确地分辨出哪些其他对象属于第一障碍物。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,本公开实施例中所提到的特定名词包括:
1、k-means算法(k-means clustering algorithm,k均值聚类算法),是一种迭代求解的聚类分析算法,所谓聚类,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。
2、DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。
3、RANSAC为Random Sample Consensus的缩写,它是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种检测方法的应用场景进行详细介绍,本公开实施例所公开的一种检测方法可以应用于一种机器人进行环境感知与避障的场景中,具体的,机器人运行在一些狭窄巷道中,精准的区分出两侧货架与超出货架的货物,并将超出货架的货物按照障碍物进行处理。可以在机器人上安装传感器,用于检测机器人运行空间中的环境信息,包括机器人处于狭窄巷道中两侧货架的货物状态信息和悬空于狭窄巷道中两侧货架之间的障碍物信息,其中,货物状态信息包括以下至少一种:货物处于货架里侧(未超出货架)、货物超出货架、货物处于货架外侧(比如地面;或,货物正在掉落货架的过程中,处于狭窄巷道中两侧货架之间地面的上方)。
本公开实施例所提供的检测方法的执行主体一般为具有一定计算能力的计算机设备,在一些可能的实现方式中,该检测方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为计算机设备为例对本公开实施例提供的检测方法加以说明。
参见上述对本公开实施例所公开的一种检测方法的应用场景的介绍,如图1所示,其为本公开实施例提供的一种检测方法的流程图,所述方法包括步骤S101~S104,其中:
S101:获取目标环境中的第一点云数据以及目标对象的目标几何特征。
本步骤中,目标环境可以包括目标对象所在的环境,比如,以仓储物流领域中,机器人运行在仓库中的场景为例,目标环境中包括机器人、货架、货物、其他装置和设备等。另外,目标对象可以包括货架和/或地面。
第一点云数据可以为安装在机器人上的传感器所采集到的目标环境的点云数据,其中,每个第一点云数据在机器人坐标系中有唯一的位置坐标。这里,可以将传感器安装在机器人的门架顶部,用以实现采集机器人运行空间中的目标环境的信息,具体的,能够采集到机器人运行前方的环境信息,以及机器人两侧货架上的货物状态信息。这里,所用到的传感器可以为一种三维感知传感器,包括但不限于基于飞行时间的相机,基于结构光的相机,双目相机,激光雷达传感器和毫米波雷达传感器等。
本步骤中,目标几何特征可以包括货架的预设平面的特征和/或地平面特征,其中,预设平面可以包括货架的与货物进出口方向和/或水平面垂直的平面,可以参见图2所示,其为目标环境的示意图,其为俯视视角。其中,21表示机器人,22表示机器人前进的正方向,23表示机器人左侧货架,24表示机器人右侧货架,25表示货物进出口方向,26表示货架的预设平面,可以为机器人左侧货架23的右侧平面,即预设平面26-A,还可以为机器人右侧货架24的左侧平面,即预设平面26-B。
S102:基于目标几何特征从第一点云数据中筛选属于目标对象的第一目标点云数据,并对除第一目标点云数据之外的第一点云数据进行对象分割,得到除目标对象以外的其他对象的第二目标点云数据。
首先,基于目标几何特征,可以建立关于目标对象的目标几何特征的方程,从第一点云数据中筛选属于目标对象,且满足目标几何特征的第一点云数据并拟合处理,确定第一目标点云数据。之后,可以将第一目标点云数据聚类,并分割出来单独保存。
延续上例,首先,可以在机器人坐标系o-xyz内可以建立平面方程,即
其中,a、b、c分别表示X、Y、Z上的系数,X为x轴方向上的坐标值,Y表示y轴方向上的坐标值,Z表示z轴方向上的坐标值,M表示预设平面26-A与预设平面26-B之间的距离。需要说明的是,一般情况下,机器人运行路径为预设平面26-A与预设平面26-B之间的中心线。其中,参见图2所示,以机器人右侧方向为机器人坐标系o-xyz内x轴正方向,以机器人向前方向为机器人坐标系o-xyz内y轴正方向,以竖直向上方向为机器人坐标系o-xyz内z轴正方向。
之后,基于机器人左侧货架的预设平面26-A的特征,在机器人坐标系o-xyz内可以建立属于预设平面26-A的平面方程,由于预设平面26-A平行于yoz平面,且预设平面26-A过机器人坐标系o-xyz的点因此预设平面26-A的平面方程为
或者,基于机器人右侧货架的预设平面26-B的特征,在机器人坐标系o-xyz内可以建立属于预设平面26-B的平面方程,由于预设平面26-B平行于yoz平面,且预设平面26-B过机器人坐标系o-xyz的点因此预设平面26-B的平面方程为
以预设平面26-A和预设平面26-B为例,具体实施时,基于第一点云数据在机器人坐标系中的位置坐标,按照预设平面26-A的平面方程和预设平面26-B的平面方程,从第一点云数据中筛选属于预设平面26-A的第一目标点云数据和属于预设平面26-B的第一目标点云数据,并将属于预设平面26-A的第一目标点云数据从第一点云数据中分割出来单独保存,将属于预设平面26-B的第一目标点云数据从第一点云数据中分割出来单独保存。
在已经将第一目标点云数据分割出去之后,从已经分割出第一目标点云数据后剩下的第一点云数据中的相邻两个目标对象之间,检测是否有第一点云数据到第一目标点云数据的距离超出至少预设距离,将超出至少预设距离的第一点云数据聚类,并进行对象分割,得到障碍物的第二目标点云数据。具体的,可以采用KMeans算法或DBSCAN,分析超出预设距离的第一点云数据,根据相似性原则,将具有较高相似度的第一点云数据划分至同一类簇,得到聚类后的对象,并对该对象进行分割,得到属于障碍物的第二目标点云数据。
需要说明的是,单独保存的第一目标点云数据的在机器人坐标系中的位置坐标已知,可以基于已知的第一目标点云数据的位置坐标,计算出从已经分割出第一目标点云数据后剩下的第一点云数据中的相邻两个目标对象之间的第一点云数据到第一目标点云数据的距离。
示例性的,其他对象包括除目标对象以外的所有对象,比如,在目标对象为货架和/或地面的情况下,其他对象可以包括位于货架上的货物,或位于地面上的货物,或位于地面上的其他障碍物,或悬空于相邻货架之间巷道上方的障碍物等。第二目标点云数据可以包括在货架上的货物的点云数据,或者,在地面上的货物的点云数据,或者在地面上的其他障碍物的点云数据,或者,悬空在相邻货架之间巷道上方的障碍物的点云数据等。
S103:基于第二目标点云数据和第一目标点云数据,确定每个其他对象与目标对象的位置关系信息。
本步骤中,位置关系信息可以包括以下至少一项:其他对象在目标对象上;其他对象位于目标对象上、并且超出目标对象;其他对象未在目标对象上等。
示例性的,第一目标点云数据可以为货架的预设平面26-A的点云数据,第二目标点云数据可以为属于左侧货架23上货物231的点云数据,基于第一目标点云数据和第二目标点云数据在机器人坐标系下的位置坐标,确定左侧货架23上每个货物的点云数据在机器人坐标系下的位置坐标,确定预设平面26-A的位置坐标,进而确定每个货物与左侧货架23的位置关系信息,其中,包括货物在左侧货架23上,比如货物231-A;货物位于左侧货架23上、并且超出左侧货架23,比如货物231-B。
S104:基于位置关系信息,从其他对象中筛选位于目标对象上,并且超出目标对象至少预设距离的第一障碍物。
具体实施时,在位置关系信息指示其他对象位于目标对象上、并且超出目标对象的情况下,确定其他对象在预设方向上超出目标对象的长度;在长度大于预设距离时,将其他对象作为第一障碍物。
这里,预设距离可以根据具体应用实例进行确定,本公开实施例不进行具体限定。不脱离本公开的范围,本领域技术人员可以针对预设距离做出多种参数修改,这些修改都应落在本公开的范围内。
示例性的,参见图2所示,预设方向可以包括货物进出口方向,其中,针对预设平面26-A,预设方向可以27所指示的方向,针对预设平面26-B,预设方向可以28所指示的方向。以预设平面26-A为基准,在左侧货架23上、且超出预设平面26-A至少预设距离的货物作为第一障碍物,比如货物231-B中超出预设平面26-A的部分。这里,预设距离可以基于预设平面26-A与预设平面26-B之间的距离M和机器人在预设平面26-A与预设平面26-B之间的巷道中所占的距离L来确定,比如,预设距离可以为
之后,基于第一障碍物的第二目标点云数据,确定第一障碍物在目标环境中的第一位置信息,以使移动装置基于第一位置信息躲避第一障碍物。
示例性的,机器人可以根据第一障碍物在运行环境中的第一位置信息进行避障处理,及时停止运行,并向服务台发送出现第一障碍物的信号以及第一障碍物在目标环境中的位置坐标。
在一些实施例中,在位置关系信息指示其他对象未在目标对象上的情况下,将在目标对象外的其他对象作为第二障碍物。之后,可以基于第二障碍物的第二目标点云数据,确定第二障碍物在目标环境中的第二位置信息,以使移动装置基于第二位置信息躲避第二障碍物。
示例性的,位置关系信息指示其他对象未在目标对象上的情况可以包括其他对象位于预设平面26-A和预设平面26-B之间的地面上的情况,或者,包括其他对象悬空位于预设平面26-A和预设平面26-B之间,将此种情况下的其他对象作为第二障碍物。此时,机器人可以根据第二障碍物在运行环境中的第二位置信息进行避障处理,及时停止运行,并向服务台发送出现第二障碍物的信号以及第二障碍物在目标环境中的位置坐标。
在一些实施例中,在目标对象包括地面,目标几何特征包括地平面特征的情况下,还可以基于其他对象与地面的位置关系信息,从其他对象中筛选位于地面上的第二障碍物。
这里,从其他对象中筛选位于地面上的第二障碍物的方法可以参见上述步骤S104中筛选第一障碍物的方法,具体实施时,基于地平面特征,可以在机器人坐标系o-xyz内建立属于地面的平面方程,由于地面平行于xoy平面,且地面过机器人坐标系o-xyz的原点(0,0,0),因此地面的平面方程为
Z=0
之后,可以基于第二目标点云数据在机器人坐标系中的位置坐标和地面的平面方程Z=0,确定位于地面上的第二目标点云数据,即第二目标点云数据中存在到地面的距离为零的点云数据,将位于地面上的第二目标点云数据对应的其他对象作为第二障碍物。
上述步骤S101~S104,其利用了目标几何特征,该目标几何特征属于目标对象的唯一几何特征,不包括不属于目标对象的特征,比如,货架平面特征不包括超出货架的较小体积货物的特征。利用目标对象的目标几何特征,能够准确地分割出属于目标对象的第一目标点云数据和属于其他对象的第二目标点云数据,之后,利用每个其他对象与目标对象的位置关系信息,就能够准确地分辨出哪些其他对象属于第一障碍物。
基于上述步骤S102中的基于目标几何特征从第一点云数据中筛选属于目标对象的第一目标点云数据,在一种可能的实施方式中,拟合处理属于目标对象且满足目标几何特征的第一点云数据,具体的,可以参见图3所示,其为,拟合第一点云数据,确定第一目标点云数据的流程图,包括步骤S301~S302:
S301:获取预先设置的目标几何特征的拟合范围;
S302:基于拟合范围和目标几何特征,拟合属于目标对象的第一点云数据,确定第一目标点云数据。
这里,拟合范围为RANSAC算法定义的范围。通过RANSAC算法,拟合属于目标对象且满足目标几何特征的第一点云数据,利用RANSAC算法在拟合范围内拟合属于目标对象的第一点云数据,能够进一步提高确定的第一目标点云数据的准确性。
基于上述步骤S102中的对除第一目标点云数据之外的第一点云数据进行对象分割,得到除目标对象以外的其他对象的第二目标点云数据,在一种可能的实施方式中,可以仅对所需位置的第一点云数据进行其他对象的分割处理,能够减少对象分割量,提高分割效率。具体实施时,首先,可以基于第一目标点云数据,从第一点云数据中筛选位于两个相邻目标对象之间的第二点云数据;之后,对第二点云数据进行对象分割,得到除目标对象以外的其他对象的第二目标点云数据。
示例性的,检测是否有第二点云数据到第一目标点云数据的距离超出至少预设距离,将超出至少预设距离的第二点云数据聚类,并进行对象分割,得到障碍物的第二目标点云数据。
这里,第二点云数据属于除第一目标点云数据之外的第一点云数据的子集。示例性的,在已知预设平面26-A的第一目标点云数据和预设平面26-B的第一目标点云数据的情况下,可以确定预设平面26-A的位置坐标和预设平面26-B的位置坐标,并从第一点云数据中筛选出位于预设平面26-A和预设平面26-B之间的第二点云数据,并对第二点云数据聚类,确定属于其他对象的第二目标点云数据,并将第二目标点云数据从第二点云数据中分割出来,以为后续进一步确定其他对象与目标对象的位置关系信息做准备。
这里,仅针对筛选出的第二点云数据进行对象分割,与对除第一目标点云数据之外的第一点云数据进行对象分割处理相比,能够减少对象分割量,提高分割效率。
基于上述步骤S102中的对除第一目标点云数据之外的第一点云数据进行对象分割,得到除目标对象以外的其他对象的第二目标点云数据,在另一种可能的实施方式中,可以先剔除第一点云数据中不需要的障碍点云数据,之后,对保留下来的第一点云数据进行分割处理,具体实施时,基于第一目标点云数据,确定目标对象的边缘位置信息;基于边缘位置信息,从第一点云数据中剔除未位于两个相邻目标对象之间的点云数据,将剔除后剩余的点云数据作为第三点云数据;对第三点云数据进行对象分割,得到除目标对象以外的其他对象的第二目标点云数据。
这里,障碍点云数据可以为未位于两个相邻目标对象之间的点云数据,示例性的,如图2所示,障碍点云数据可以为除预设平面26-A与预设平面26-B之间的点云数据(包括预设平面26-A的点云数据和预设平面26-B的点云数据)以外的点云数据。
目标对象的边缘位置信息包括预设平面26-A的位置信息和预设平面26-B的位置信息。第三点云数据包括预设平面26-A与预设平面26-B之间的点云数据。
上述采用先剔除后分割的方法,可以避免障碍点云数据对第三点云数据进行对象分割时的影响,能够提高对象分割的准确率。
下面以机器人进行环境感知与避障的应用场景为例,针对上述步骤S101~S104进行详细阐述,可以参见图4所示,其为,机器人进行环境感知与避障的流程示意图,包括步骤S401~S406:
S401:机器人通过安装在机器人门架顶部的传感器采集第一点云数据。
S402:基于货架平面特征,在第一点云数据中拟合并分割出货架的预设平面的第一目标点云数据。
S403:判断在相邻两个货架的预设平面之间,是否有第一点云数据到预设平面的距离超出至少预设距离;如果是,则执行步骤S404;如果否,则循环执行步骤S401。
S404:将超出至少预设距离的第一点云数据聚类,并进行对象分割得到其他对象的第二目标点云数据。
S405:将超出预设距离小于预设阈值的其他对象作为货架上的第一障碍物;将超出预设距离大于或等于预设阈值的其他对象作为地面上和/或悬空于相邻货架之间巷道上方的第二障碍物。
S406:将第一障碍物和/或第二障碍物在目标环境中的位置信息发送给机器人,以使机器人基于障碍物的位置信息进行避障处理。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与检测方法对应的检测装置,由于本公开实施例中的检测装置解决问题的原理与本公开实施例上述检测方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图5所示,为本公开实施例提供的一种检测装置的示意图,所述装置包括:数据获取模块501、筛选分割模块502、信息确定模块503和对象筛选模块504;其中,
数据获取模块501,用于获取目标环境中的第一点云数据以及目标对象的目标几何特征;
筛选分割模块502,用于基于所述目标几何特征从所述第一点云数据中筛选属于所述目标对象的第一目标点云数据,并对除所述第一目标点云数据之外的第一点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据;
信息确定模块503,用于基于所述第二目标点云数据和所述第一目标点云数据,确定每个其他对象与所述目标对象的位置关系信息;
对象筛选模块504,用于基于所述位置关系信息,从所述其他对象中筛选位于所述目标对象上,并且超出所述目标对象至少预设距离的第一障碍物。
一种可选的实施方式中,所述筛选分割模块502,用于获取预先设置的所述目标几何特征的拟合范围;基于所述拟合范围和所述目标几何特征,拟合属于所述目标对象的第一点云数据,确定所述第一目标点云数据。
一种可选的实施方式中,所述其他对象包括位于相邻两个目标对象之间的对象;
所述筛选分割模块502,用于基于所述第一目标点云数据,从所述第一点云数据中筛选位于两个相邻目标对象之间的第二点云数据;对所述第二点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据。
一种可选的实施方式中,所述筛选分割模块502,用于基于所述第一目标点云数据,确定所述目标对象的边缘位置信息;基于所述边缘位置信息,从所述第一点云数据中剔除未位于两个相邻目标对象之间的点云数据,将剔除后剩余的点云数据作为第三点云数据;对所述第三点云数据进行对象分割,得到除所述目标对象以外的其他对象的第二目标点云数据。
一种可选的实施方式中,所述位置关系信息包括以下至少一项:所述其他对象在所述目标对象上;所述其他对象位于所述目标对象上、并且超出所述目标对象;所述其他对象未在所述目标对象上。
一种可选的实施方式中,所述对象筛选模块504,用于在所述位置关系信息指示所述其他对象位于所述目标对象上、并且超出所述目标对象的情况下,确定所述其他对象在预设方向上超出目标对象的长度;在所述长度大于所述预设距离时,将所述其他对象作为所述第一障碍物。
一种可选的实施方式中,所述对象筛选模块504,还用于在基于所述第二目标点云数据和所述第一目标点云数据,确定每个其他对象与所述目标对象的位置关系信息之后,在所述位置关系信息指示所述其他对象未在所述目标对象上的情况下,将在所述目标对象外的其他对象作为第二障碍物。
一种可选的实施方式中,所述目标对象包括货架;所述目标几何特征包括所述货架的预设平面的特征;所述预设平面包括所述货架的与货物进出口方向和/或水平面垂直的平面。
一种可选的实施方式中,所述目标对象包括地面;所述目标几何特征包括地平面特征;所述对象筛选模块504,还用于基于所述其他对象与所述地面的位置关系信息,从所述其他对象中筛选位于所述地面上的第二障碍物。
一种可选的实施方式中,所述检测装置还包括避障处理模块505,用于在基于所述位置关系信息,从所述其他对象中筛选位于所述目标对象上,并且超出所述目标对象预设距离的第一障碍物之后,基于所述第一障碍物的第二目标点云数据,确定所述第一障碍物在所述目标环境中的第一位置信息,以使移动装置基于所述第一位置信息躲避所述第一障碍物;和/或,基于所述第二障碍物的第二目标点云数据,确定所述第二障碍物在所述目标环境中的第二位置信息,以使移动装置基于所述第二位置信息躲避所述第二障碍物。
关于检测装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述检测方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种计算机设备,如图6所示,为本公开实施例提供的一种计算机设备结构示意图,包括:
处理器61和存储器62;所述存储器62存储有处理器61可执行的机器可读指令,处理器61用于执行存储器62中存储的机器可读指令,所述机器可读指令被处理器61执行时,处理器61执行下述步骤:
S101:获取目标环境中的第一点云数据以及目标对象的目标几何特征。
S102:基于目标几何特征从第一点云数据中筛选属于目标对象的第一目标点云数据,并对除第一目标点云数据之外的第一点云数据进行对象分割,得到除目标对象以外的其他对象的第二目标点云数据。
S103:基于第二目标点云数据和第一目标点云数据,确定每个其他对象与目标对象的位置关系信息。
S104:基于位置关系信息,从其他对象中筛选位于目标对象上,并且超出目标对象至少预设距离的第一障碍物。
上述存储器62包括内存621和外部存储器622;这里的内存621也称内存储器,用于暂时存放处理器61中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器61通过内存621与外部存储器622进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的检测方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的检测方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的检测方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的检测方法的步骤,具体可参见上述方法实施例,在此不再赘述。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种基于概率分配的超像素方法