CN112084854B - 一种障碍物检测方法、障碍物检测装置及机器人 - Google Patents
一种障碍物检测方法、障碍物检测装置及机器人 Download PDFInfo
- Publication number
- CN112084854B CN112084854B CN202010773479.8A CN202010773479A CN112084854B CN 112084854 B CN112084854 B CN 112084854B CN 202010773479 A CN202010773479 A CN 202010773479A CN 112084854 B CN112084854 B CN 112084854B
- Authority
- CN
- China
- Prior art keywords
- grid
- curvature
- target
- mesh
- flat area
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000004888 barrier function Effects 0.000 claims abstract description 20
- 238000012216 screening Methods 0.000 claims abstract description 11
- 230000007613 environmental effect Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 18
- 238000010276 construction Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 238000010030 laminating Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 239000012634 fragment Substances 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
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- 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/12—Bounding box
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Remote Sensing (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本申请适用于机器人领域,公开了一种障碍物检测方法、障碍物检测装置、机器人及计算机可读存储介质。其中,该方法包括:获取机器人在移动方向上的环境深度图;基于所述环境深度图构建环境三维模型,其中,所述环境三维模型由三角形网格表示;在所述环境三维模型中筛选出目标平坦区域,其中,所述目标平坦区域为所述环境三维模型中面积最大的平坦区域;将除所述目标平坦区域之外的每个三角形网格分别与所述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格;根据所述目标三角形网格,生成最小包围框,所述最小包围框用于表示障碍物。通过本申请方案,可提升障碍物检测的准确率,减少出现机器人因障碍物而跌倒的情况。
Description
技术领域
本申请属于机器人技术领域,尤其涉及一种障碍物检测方法、障碍物检测装置、机器人及计算机可读存储介质。
背景技术
障碍物检测是机器人的路径规划中非常重要的部分。在机器人的自主导航过程中,需有效避开障碍物,才可保持机器人持续前进。目前,空间中的大障碍物可通过机器人的距离传感器(例如雷达等)进行检测;而对于空间中的小障碍物来说,由于其有着与地面贴合程度高且尺寸小的特点,导致检测较为困难。当机器人踏上未检测到的小障碍物时,可能出现机器人跌倒的情况,一方面容易损伤价格昂贵的机器人,另一方面安全隐患极大。
发明内容
本申请提供了一种障碍物检测方法、障碍物检测装置、机器人及计算机可读存储介质,可基于视觉实现对贴合地面的各种尺寸的障碍物的检测,提升检测准确度,减少出现机器人因障碍物而跌倒的情况。
第一方面,本申请提供了一种障碍物检测方法,包括:
获取机器人在移动方向上的环境深度图;
基于上述环境深度图构建环境三维模型,其中,上述环境三维模型由三角形网格表示;
在上述环境三维模型中筛选出目标平坦区域,其中,上述目标平坦区域为上述环境三维模型中面积最大的平坦区域;
将除上述目标平坦区域之外的每个三角形网格分别与上述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格;
根据上述目标三角形网格,生成最小包围框,上述最小包围框用于表示障碍物。
第二方面,本申请提供了一种障碍物检测装置,包括:
获取单元,用于获取机器人在移动方向上的环境深度图;
构建单元,用于基于上述环境深度图构建环境三维模型,其中,上述环境三维模型由三角形网格表示;
筛选单元,用于在上述环境三维模型中筛选出目标平坦区域,其中,上述目标平坦区域为上述环境三维模型中面积最大的平坦区域;
确定单元,用于将除上述目标平坦区域之外的每个三角形网格分别与上述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格;
生成单元,用于根据上述目标三角形网格,生成最小包围框,上述最小包围框用于表示障碍物。
第三方面,本申请提供了一种机器人,上述机器人包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤。
第五方面,本申请提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤。
由上可见,通过本申请方案,首先获取机器人在移动方向上的环境深度图,然后基于上述环境深度图构建环境三维模型,其中,上述环境三维模型由三角形网格表示,接着在上述环境三维模型中筛选出目标平坦区域,其中,上述目标平坦区域为上述环境三维模型中面积最大的平坦区域;再将除上述目标平坦区域之外的每个三角形网格分别与上述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格,最后根据上述目标三角形网格,生成最小包围框,上述最小包围框用于表示障碍物。本申请方案采用环境深度图构建环境三维模型,并在该三维模型中筛选出目标平坦区域,将该目标平坦区域视为地面并与其它三角形网格进行比对,以此得到组成障碍物边界的目标三角形网格,实现障碍物检测。上述过程不再基于距离传感器检测障碍物,而是基于视觉检测障碍物,可实现对各种尺寸的贴合地面的障碍物的检测,提升检测准确度,减少出现机器人因障碍物而跌倒的情况。可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的搭载有深度相机的机器人的示例图;
图2是本申请实施例提供的障碍物检测方法的实现流程示意图;
图3-1是本申请实施例提供的真实环境实景的示例图;
图3-2是本申请实施例提供的环境三维模型的示例图;
图4是本申请实施例提供的障碍物检测方法中步骤203的具体实现流程示意图;
图5是本申请实施例提供的障碍物检测方法中步骤2032的具体实现流程示意图;
图6是本申请实施例提供的目标三角形网格的示例图;
图7是本申请实施例提供的最小包围框的示例图;
图8是本申请实施例提供的障碍物检测装置的结构框图;
图9是本申请实施例提供的机器人的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为便于理解本申请实施例所提供的障碍物检测方法,下面先对机器人作出介绍。请参阅图1,在该机器人中的头部、腰部或其它部位预先搭载有深度相机,其中,该深度相机可以是ToF(Time of Flight)相机,也可以是RGB-D相机,此处不对该深度相机的具体类型作出限定。该深度相机的拍摄视角为前下方。本申请实施例不对该深度相机的水平场视角、竖直场视角及所输出的深度图像的帧率作出限定。仅作为示例,可以将深度相机的水平场视角设置为60度,将竖直场视角设置为45度,将深度相机所输出的深度图像的帧率设置为不低于30fps(Frames Per Second)。基于所设定的竖直场视角,深度相机可以采集得到前方地面区域一定距离内(例如2米内)的深度图像。
下面对本申请实施例提供的一种障碍物检测方法进行描述。请参阅图2,本申请实施例中的障碍物检测方法包括:
步骤201,获取机器人在移动方向上的环境深度图;
在本申请实施例中,机器人通常情况可通过控制双足向前移动。在向前移动时,可通过前文所述的搭载于机器人身上的深度相机拍摄获得该机器人在移动方向上的环境深度图。考虑到该深度相机为朝向前下方拍摄,因而,该环境深度图主要用于表示地面的深度信息。
步骤202,基于上述环境深度图构建环境三维模型,其中,上述环境三维模型由三角形网格表示;
在本申请实施例中,机器人可以继续对环境深度图进行网格化处理,以实现环境三维模型的构建,其中,该环境三维模型可以由三角形网格表示。该环境三维模型的构建过程如下:机器人定义前方地面空间为一个立方体网格,并将环境深度图转换为三维空间点云;根据当前该深度相机的相机姿态及相机内参,即可将环境深度图映射至已定义的立方体网格中进行网格化处理,得到与该环境深度图相对应的环境三维模型。其中,上述网格化处理,指的是将立方体网格中有效距离场(Signed Distance Field,SDF)的值为0的位置连接起来,再通过预设的算法(例如marching cube算法)构建出三角形网格的顶点。需要注意的是,该环境三维模型会跟随机器人的移动而不断发生更新,此处不再赘述该环境三维模型的更新过程。请参阅图3-1及图3-2,图3-1给出了一真实环境实景的示例;图3-2给出了基于该真实环境实景所获得的环境三维模型的示例。
在一些实施例中,可以是机器人在获取得到了若干帧(例如10帧)环境深度图之后,将该若干帧环境深度图进行融合,再基于融合后的环境深度图构建得到环境三维模型。
步骤203,在上述环境三维模型中筛选出目标平坦区域,其中,上述目标平坦区域为上述环境三维模型中面积最大的平坦区域;
在本申请实施例中,可以将所得到的环境三维模型视为三维地形图。因而,机器人将可将环境三维模型作为基础,从该环境三维模型中筛选出平坦区域。请参阅图4,机器人可以根据三角形网格的法线及曲率筛选出平坦区域,则该步骤203可以包括:
步骤2031,计算上述环境三维模型中各个三角形网格的法线及曲率;
考虑到机器人可通过同样的处理流程得到每个三角形网格的法线及曲率,因而,此处以任意一个三角形网格为例,对三角形网格的法线及曲率的计算过程作出解释及说明:
机器人先计算出三角形网格中各个顶点的法线及曲率,然后基于各个顶点的法线及曲率,计算出该三角形网格的法线均值及曲率均值,该法线均值即为该三角形网格的法线;同样地,该曲率均值即为该三角形网格的曲率。其中,三角形网格的顶点的法线为以该顶点作为起点的两条边向量的叉积,该法线同时与以该顶点作为起点的两条边向量相垂直。
步骤2032,基于各个三角形网格的法线及曲率进行聚类,得到至少一个平坦区域。
通过三角形网格的法线及曲率,可以对三角形网格进行聚类,使得处于相同平面的三角形网格可以被划分至一起,以此得到至少一个平坦区域。请参阅图5,上述聚类过程可以包括:
A1、将曲率最小的三角形网格确定为初始的种子网格;
其中,机器人可遍历给定范围内所有的三角形网格的曲率,从中查找出曲率最小的三角形网格,并将该三角形网格确定为初始的种子网格。可以认为,曲率最小的三角形网格为最平滑的区域,可将其作为一平坦区域的起始状态,逐步向外查找,以实现平坦区域的探索。并且,从最平滑的区域开始向外查找,可以减少分割片段的总数,以此提高对平坦区域进行查找的效率。
A2、检测上述种子网格的邻域网格的法线是否满足预设的法线条件,并检测上述种子网格的邻域网格的曲率是否满足预设的曲率条件;
其中,对于一种子网格来说,该种子网格的邻域网格的法线是否满足预设的法线条件可通过如下过程实现:先计算该邻域网格的法线与该种子网格的法线之间的夹角,记作第一夹角,接着再检测该第一夹角是否小于预设的第一夹角阈值,若该第一夹角小于该第一夹角阈值,则确定该邻域网格的法线满足该法线条件。反之,若该第一夹角大于或等于该第一夹角阈值,则确定该邻域网格的法线不满足该法线条件。
其中,对于一种子网格来说,该种子网格的邻域网格的曲率是否满足预设的曲率条件可通过如下过程实现:检测该邻域网格的曲率是否小于预设的曲率阈值,若该邻域网格的曲率小于该曲率阈值,则确定该邻域网格的曲率满足该曲率条件。反之,若该邻域网格的曲率大于或等于该曲率阈值,则确定该邻域网格的曲率不满足该曲率条件。
A3、若上述邻域网格的法线满足上述法线条件,则将上述邻域网格加入至初始的种子网格所在的当前区域,以实现上述当前区域的更新;
其中,检测邻域网格的法线是否满足法线条件是为了对初始的种子网格所在的当前区域进行更新。也即,机器人以初始的种子网格所在的当前区域作为平坦区域的起始状态,判断是否可以将种子网格的邻域网格加入至该平坦区域中:只有在邻域网格的法线满足法线条件时,才将该邻域网格加入至初始的种子网格所在的当前区域(也即平坦区域)中,以实现上述当前区域的更新。
A4、若上述邻域网格的曲率满足上述曲率条件,则将上述邻域网格确定为新的种子网格,并返回执行A2;
其中,检测邻域网格的曲率是否满足曲率条件是为了对种子网格进行更新。也即,当有一个种子网格的邻域网格的曲率满足该曲率条件时,即可将该邻域网格作为新的种子网格,并返回执行A2及后续步骤,帮助继续对平坦区域进行查找及更新。
A5、在无法产生新的种子网格时,将此时所得到的更新后的上述当前区域确定为一个平坦区域。
其中,当以一个初始的种子网格为起点,无法再产生新的种子网格(也即,前次所确定的所有种子网格的邻域网格的曲率均不满足曲率条件)时,结束本次基于该初始的种子网格为起点的平坦区域的查找及更新。机器人可以将此时所得到的更新后的当前区域确定为一个平坦区域。
在一些实施例中,可以在开始查找平坦区域时,创建一空的种子网格序列(也即,种子网格序列在初始状态下为空)。每次新产生的种子网格可以存放于该种子网格序列中;每次对一种子网格的所有邻域网格进行了法线及曲率的检测后,可以将该种子网格从该种子网格序列中删除。通过该种子网格序列,实现对种子网格的管理。在这种情况下,一旦该种子网格序列在非初始状态下已为空,即可认为已无法产生新的种子网格。
在一些实施例中,机器人可以先将环境三维模型划分为若干个三维区域,并在每个三维区域中执行上述步骤A1至A5的操作,以查找出各个三维区域中的平坦区域。例如,将环境三维模型划分为4*4个三维区域,并在每个三维区域中进行平坦区域的查找。
在一些实施例中,机器人也可以是先将曲率最小的三角形网格确定为初始的种子网格后,执行上述步骤A2至A5,查找得到平坦区域;随后,在已查找到的平坦区域之外,获取三角形网格的曲率最小值,并检测该曲率最小值是否小于一预设的曲率下限值;若是,则可将已查找到的平坦区域之外的曲率最小的三角形网格作为初始的种子网格,并执行步骤A2至A5的操作;以此类推,直至在已查找到的平坦区域之外,三角形网格的曲率最小值不小于上述曲率下限值为止。
通过上述过程,机器人可以从环境三维模型中分割得到各个平坦区域。在得到各个平坦区域后,可根据各个平坦区域所包含的三角形网格的数量估算各个平坦区域的面积,并将面积最大的平坦区域确定为目标平坦区域。可以认为,该目标平坦区域为机器人所处的平面(通常为地面或桌面等)。
步骤204,将除上述目标平坦区域之外的每个三角形网格分别与上述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格;
在本申请实施例中,障碍物放置于机器人所处的平面时,由于障碍物本身的体积及尺寸等原因,即便该障碍物再如何贴合于机器人所处的平面,也会因障碍物自身的边界而导致一定的凸起。因而,机器人可以将除上述目标平坦区域之外的每个三角形网格分别与上述目标平坦区域进行比对,以此判断这些三角形网格是否带来凸起,若是,则可认为是组成障碍物边界的目标三角形网格。示例性地,可以基于法线确定三角形网格是否为组成障碍物边界的目标三角形网格,则上述步骤204可以具体包括:
B1、基于半边数据结构(half-edges),对除上述目标平坦区域之外的三角形网格进行遍历;
机器人可以使用半边数据结构来对组成环境三维模型的三角形网格进行管理,具体为对三角形网格的顶点及边进行管理。下面先对半边数据结构进行介绍:半边数据结构将每个边分为两个半边,每个半边都是一个有向边,方向相反。如果一个边被两个面片共用(正则边),则每个面片都能各自拥有一个半边。如果一个边仅被一个面片占有(边界边),则这个面片仅拥有该边的其中一个半边,另一个半边为闲置状态。基于半边数据结构,机器人可以快速遍历除目标平坦区域之外的三角形网格的边及顶点,同时可以判断边之间是否相连,以实现对除目标平坦区域之外的三角形网格的遍历。
B2、计算当前遍历的三角形网格的法线与上述目标平坦区域的法线之间的第二夹角;
对于当前遍历的任意一个三角形网格(也即除目标平坦区域之外的任意一个三角形网格)来说,机器人可以计算该三角形网格的法线与上述目标平坦区域的法线之间的夹角,记为第二夹角。通过该第二夹角,判断该三角形网格相对于该目标平坦区域是否为凸起。
B3、检测上述第二夹角是否大于预设的第二夹角阈值;
B4、若上述第二夹角大于预设的第二夹角阈值,则确定当前遍历的三角形网格为组成一障碍物边界的目标三角形网格。
当第二夹角大于预设的第二夹角阈值时,可将该三角形网格视为相对于目标平坦区域的凸起,也即组成一障碍物边界的目标三角形网格;反之,当第二夹角小于或等于预设的第二夹角阈值时,即认为该三角形网格与目标平坦区域向相对平行。请参阅图6,图6给出了基于图3-2所示出的环境三维模型而确定的目标三角形网格的示例。
步骤205,根据上述目标三角形网格,生成最小包围框,上述最小包围框用于表示障碍物。
在本申请实施例中,可为目标三角形网格生成最小包围框,用以表示障碍物。请参阅图7,图7给出了一最小包围框的示例。示例性地,考虑到不同的目标三角形网格所组成的障碍物边界可能不同,因而,机器人可以先获取各个目标三角形网格之间的连接关系,该连接关系可基于半边数据结构对目标三角形网格进行分析而得,用于指示目标三角形网格之间是否直接或间接相连;随后,考虑到直接或间接相连的目标三角形网格可以组成一个障碍物的闭合边界,因此可以基于上述连接关系,将各个目标三角形网格划分至相应的网格集合中,其中,属于同一网格集合的目标三角形共同组成同一障碍物边界;最后针对每个网格集合,根据上述网格集合中的目标三角形,生成上述网格集合的最小包围框。以图6为例,图6所示出的目标三角形网格实际上构成了三个不同的障碍物的边界;因而,基于图6可划分出三个网格集合,并生成每个网格集合所分别对应的一个最小包围框,最终可得到三个最小包围框,用以分别表示三个不同的障碍物。机器人可基于这些最小包围框进行路径规划,以避免机器人在移动过程中踏上障碍物。
由上可见,本申请实施例中,采用环境深度图构建环境三维模型,并在该三维模型中筛选出目标平坦区域,将该目标平坦区域视为地面并与其它三角形网格进行比对,以此得到组成障碍物边界的目标三角形网格,实现障碍物检测。上述过程不再基于距离传感器检测障碍物,而是基于视觉检测障碍物,可实现对各种尺寸的贴合地面的障碍物的检测,提升检测准确度,减少出现机器人因障碍物而跌倒的情况。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文所提供的障碍物检测方法,本申请实施例还提供了一种障碍物检测装置,上述障碍物检测装置可集成于机器人中,参见图8,本申请实施例中的障碍物检测装置800包括:
获取单元801,用于获取机器人在移动方向上的环境深度图;
构建单元802,用于基于上述环境深度图构建环境三维模型,其中,上述环境三维模型由三角形网格表示;
筛选单元803,用于在上述环境三维模型中筛选出目标平坦区域,其中,上述目标平坦区域为上述环境三维模型中面积最大的平坦区域;
比对单元804,用于将除上述目标平坦区域之外的每个三角形网格分别与上述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格;
生成单元805,用于根据上述目标三角形网格,生成最小包围框,上述最小包围框用于表示障碍物。
可选地,上述筛选单元803,包括:
第一计算子单元,用于计算上述环境三维模型中各个三角形网格的法线及曲率;
聚类子单元,用于基于各个三角形网格的法线及曲率进行聚类,得到至少一个平坦区域;
第二计算子单元,用于计算各个平坦区域的面积,以将面积最大的平坦区域确定为目标平坦区域。
可选地,上述聚类子单元,包括:
种子网格初始化子单元,用于将曲率最小的三角形网格确定为初始的种子网格;
网格检测子单元,用于检测上述种子网格的邻域网格的法线是否满足预设的法线条件,并检测上述种子网格的邻域网格的曲率是否满足预设的曲率条件;
区域更新子单元,用于若上述邻域网格的法线满足上述法线条件,则将上述邻域网格加入至初始的种子网格所在的当前区域,以实现上述当前区域的更新;
种子网格更新子单元,用于若上述邻域网格的曲率满足上述曲率条件,则将上述邻域网格确定为新的种子网格,并触发运行上述网格检测子单元,直至无法产生新的种子网格为止;
平坦区域确定子单元,用于将更新后的上述当前区域确定为一个平坦区域。
可选地,上述网格检测子单元,包括:
第一夹角计算子单元,用于计算上述邻域网格的法线与上述种子网格的法线之间的第一夹角;
第一夹角检测子单元,用于检测上述第一夹角是否小于预设的第一夹角阈值;
第一确定子单元,用于若上述第一夹角小于预设的第一夹角阈值,则确定上述邻域网格的法线满足上述法线条件。
可选地,上述网格检测子单元,包括:
曲率计算子单元,用于检测上述邻域网格的曲率是否小于预设的曲率阈值;
第二确定子单元,用于若上述邻域网格的曲率小于上述曲率阈值,则确定上述邻域网格的曲率满足上述曲率条件。
可选地,上述比对单元804,包括:
遍历子单元,用于基于半边数据结构,对除上述目标平坦区域之外的三角形网格进行遍历;
第二夹角计算子单元,用于计算当前遍历的三角形网格的法线与上述目标平坦区域的法线之间的第二夹角;
第二夹角检测子单元,用于检测上述第二夹角是否大于预设的第二夹角阈值;
第三确定子单元,用于若上述第二夹角大于预设的第二夹角阈值,则确定当前遍历的三角形网格为组成一障碍物边界的目标三角形网格。
可选地,生成单元805,包括:
关系获取子单元,用于获取各个目标三角形网格之间的连接关系;
网格划分子单元,用于基于上述连接关系,将各个目标三角形网格划分至相应的网格集合中,其中,属于同一网格集合的目标三角形共同组成同一障碍物边界;
包围框生成子单元,用于针对每个网格集合,根据上述网格集合中的目标三角形,生成上述网格集合的最小包围框。
由上可见,本申请实施例中,采用环境深度图构建环境三维模型,并在该三维模型中筛选出目标平坦区域,将该目标平坦区域视为地面并与其它三角形网格进行比对,以此得到组成障碍物边界的目标三角形网格,实现障碍物检测。上述过程不再基于距离传感器检测障碍物,而是基于视觉检测障碍物,可实现对各种尺寸的贴合地面的障碍物的检测,提升检测准确度,减少出现机器人因障碍物而跌倒的情况。
对应于上文所提供的障碍物检测方法,本申请实施例还提供了一种机器人,参见图9,本申请实施例中的机器人9包括:存储器901,一个或多个处理器902(图9中仅示出一个)及存储在存储器901上并可在处理器上运行的计算机程序。其中:存储器901用于存储软件程序以及模块,处理器902通过运行存储在存储器901的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器902通过运行存储在存储器901的上述计算机程序时实现以下步骤:
获取机器人在移动方向上的环境深度图;
基于上述环境深度图构建环境三维模型,其中,上述环境三维模型由三角形网格表示;
在上述环境三维模型中筛选出目标平坦区域,其中,上述目标平坦区域为上述环境三维模型中面积最大的平坦区域;
将除上述目标平坦区域之外的每个三角形网格分别与上述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格;
根据上述目标三角形网格,生成最小包围框,上述最小包围框用于表示障碍物。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,上述在上述环境三维模型中筛选出平坦区域,包括:
计算上述环境三维模型中各个三角形网格的法线及曲率;
基于各个三角形网格的法线及曲率进行聚类,得到至少一个平坦区域;
计算各个平坦区域的面积,以将面积最大的平坦区域确定为目标平坦区域。
在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述基于各个三角形网格的法线及曲率进行聚类,得到至少一个平坦区域,包括:
将曲率最小的三角形网格确定为初始的种子网格;
检测上述种子网格的邻域网格的法线是否满足预设的法线条件,并检测上述种子网格的邻域网格的曲率是否满足预设的曲率条件;
若上述邻域网格的法线满足上述法线条件,则将上述邻域网格加入至初始的种子网格所在的当前区域,以实现上述当前区域的更新;
若上述邻域网格的曲率满足上述曲率条件,则将上述邻域网格确定为新的种子网格,并返回执行上述检测上述种子网格的邻域网格的法线是否满足预设的法线条件,并检测上述种子网格的邻域网格的曲率是否满足预设的曲率条件的步骤及后续步骤,直至无法产生新的种子网格为止;
将更新后的上述当前区域确定为一个平坦区域。
在上述第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述检测上述种子网格的邻域网格的法线是否满足预设的法线条件,包括:
计算上述邻域网格的法线与上述种子网格的法线之间的第一夹角;
检测上述第一夹角是否小于预设的第一夹角阈值;
若上述第一夹角小于预设的第一夹角阈值,则确定上述邻域网格的法线满足上述法线条件。
在上述第三种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述检测上述种子网格的邻域网格的曲率是否满足预设的曲率条件,包括:
检测上述邻域网格的曲率是否小于预设的曲率阈值;
若上述邻域网格的曲率小于上述曲率阈值,则确定上述邻域网格的曲率满足上述曲率条件。
在上述第一种可能的实施方式作为基础而提供的第六种可能的实施方式中,上述将除上述目标平坦区域之外的每个三角形网格分别与上述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格,包括:
基于半边数据结构,对除上述目标平坦区域之外的三角形网格进行遍历;
计算当前遍历的三角形网格的法线与上述目标平坦区域的法线之间的第二夹角;
检测上述第二夹角是否大于预设的第二夹角阈值;
若上述第二夹角大于预设的第二夹角阈值,则确定当前遍历的三角形网格为组成一障碍物边界的目标三角形网格。
在上述第一种可能的实施方式作为基础而提供的第七种可能的实施方式中,上述根据上述目标三角形网格,生成最小包围框,包括:
获取各个目标三角形网格之间的连接关系;
基于上述连接关系,将各个目标三角形网格划分至相应的网格集合中,其中,属于同一网格集合的目标三角形共同组成同一障碍物边界;
针对每个网格集合,根据上述网格集合中的目标三角形,生成上述网格集合的最小包围框。
应当理解,在本申请实施例中,所称处理器902可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器901可以包括只读存储器和随机存取存储器,并向处理器902提供指令和数据。存储器901的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器901还可以存储设备类型的信息。
由上可见,本申请实施例中,采用环境深度图构建环境三维模型,并在该三维模型中筛选出目标平坦区域,将该目标平坦区域视为地面并与其它三角形网格进行比对,以此得到组成障碍物边界的目标三角形网格,实现障碍物检测。上述过程不再基于距离传感器检测障碍物,而是基于视觉检测障碍物,可实现对各种尺寸的贴合地面的障碍物的检测,提升检测准确度,减少出现机器人因障碍物而跌倒的情况。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (8)
1.一种障碍物检测方法,其特征在于,包括:
获取机器人在移动方向上的环境深度图;
基于所述环境深度图构建环境三维模型,其中,所述环境三维模型由三角形网格表示;
计算所述环境三维模型中各个三角形网格的法线及曲率;
基于各个三角形网格的法线及曲率进行聚类,得到至少一个平坦区域;
计算各个平坦区域的面积,以将面积最大的平坦区域确定为目标平坦区域;
将除所述目标平坦区域之外的每个三角形网格分别与所述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格;
根据所述目标三角形网格,生成最小包围框,所述最小包围框用于表示障碍物;
其中,所述基于各个三角形网格的法线及曲率进行聚类,得到至少一个平坦区域,包括:
将曲率最小的三角形网格确定为初始的种子网格;
检测所述种子网格的邻域网格的法线是否满足预设的法线条件,并检测所述种子网格的邻域网格的曲率是否满足预设的曲率条件;
若所述邻域网格的法线满足所述法线条件,则将所述邻域网格加入至初始的种子网格所在的当前区域,以实现所述当前区域的更新;
若所述邻域网格的曲率满足所述曲率条件,则将所述邻域网格确定为新的种子网格,并返回执行所述检测所述种子网格的邻域网格的法线是否满足预设的法线条件,并检测所述种子网格的邻域网格的曲率是否满足预设的曲率条件的步骤及后续步骤,直至无法产生新的种子网格为止;
将更新后的所述当前区域确定为一个平坦区域。
2.如权利要求1所述的障碍物检测方法,其特征在于,所述检测所述种子网格的邻域网格的法线是否满足预设的法线条件,包括:
计算所述邻域网格的法线与所述种子网格的法线之间的第一夹角;
检测所述第一夹角是否小于预设的第一夹角阈值;
若所述第一夹角小于所述第一夹角阈值,则确定所述邻域网格的法线满足所述法线条件。
3.如权利要求1所述的障碍物检测方法,其特征在于,所述检测所述种子网格的邻域网格的曲率是否满足预设的曲率条件,包括:
检测所述邻域网格的曲率是否小于预设的曲率阈值;
若所述邻域网格的曲率小于所述曲率阈值,则确定所述邻域网格的曲率满足所述曲率条件。
4.如权利要求1所述的障碍物检测方法,其特征在于,所述将除所述目标平坦区域之外的每个三角形网格分别与所述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格,包括:
基于半边数据结构,对除所述目标平坦区域之外的三角形网格进行遍历;
计算当前遍历的三角形网格的法线与所述目标平坦区域的法线之间的第二夹角;
检测所述第二夹角是否大于预设的第二夹角阈值;
若所述第二夹角大于所述第二夹角阈值,则确定当前遍历的三角形网格为组成一障碍物边界的目标三角形网格。
5.如权利要求1所述的障碍物检测方法,其特征在于,所述根据所述目标三角形网格,生成最小包围框,包括:
获取各个目标三角形网格之间的连接关系;
基于所述连接关系,将各个目标三角形网格划分至相应的网格集合中,其中,属于同一网格集合的目标三角形共同组成同一障碍物边界;
针对每个网格集合,根据所述网格集合中的目标三角形,生成所述网格集合的最小包围框。
6.一种障碍物检测装置,其特征在于,包括:
获取单元,用于获取机器人在移动方向上的环境深度图;
构建单元,用于基于所述环境深度图构建环境三维模型,其中,所述环境三维模型由三角形网格表示;
筛选单元,用于在所述环境三维模型中筛选出目标平坦区域,其中,所述目标平坦区域为所述环境三维模型中面积最大的平坦区域;
确定单元,用于将除所述目标平坦区域之外的每个三角形网格分别与所述目标平坦区域进行比对,确定组成障碍物边界的目标三角形网格;
生成单元,用于根据所述目标三角形网格,生成最小包围框,所述最小包围框用于表示障碍物;
其中,所述筛选单元,包括:
第一计算子单元,用于计算所述环境三维模型中各个三角形网格的法线及曲率;
聚类子单元,用于基于各个三角形网格的法线及曲率进行聚类,得到至少一个平坦区域;
第二计算子单元,用于计算各个平坦区域的面积,以将面积最大的平坦区域确定为目标平坦区域;
其中,所述聚类子单元,包括:
种子网格初始化子单元,用于将曲率最小的三角形网格确定为初始的种子网格;
网格检测子单元,用于检测所述种子网格的邻域网格的法线是否满足预设的法线条件,并检测所述种子网格的邻域网格的曲率是否满足预设的曲率条件;
区域更新子单元,用于若所述邻域网格的法线满足所述法线条件,则将所述邻域网格加入至初始的种子网格所在的当前区域,以实现所述当前区域的更新;
种子网格更新子单元,用于若所述邻域网格的曲率满足所述曲率条件,则将所述邻域网格确定为新的种子网格,并触发运行所述网格检测子单元,直至无法产生新的种子网格为止;
平坦区域确定子单元,用于将更新后的所述当前区域确定为一个平坦区域。
7.一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010773479.8A CN112084854B (zh) | 2020-08-04 | 2020-08-04 | 一种障碍物检测方法、障碍物检测装置及机器人 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010773479.8A CN112084854B (zh) | 2020-08-04 | 2020-08-04 | 一种障碍物检测方法、障碍物检测装置及机器人 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112084854A CN112084854A (zh) | 2020-12-15 |
CN112084854B true CN112084854B (zh) | 2023-12-01 |
Family
ID=73734799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010773479.8A Active CN112084854B (zh) | 2020-08-04 | 2020-08-04 | 一种障碍物检测方法、障碍物检测装置及机器人 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084854B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114627239B (zh) * | 2022-03-04 | 2024-04-30 | 北京百度网讯科技有限公司 | 包围盒生成方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109145677A (zh) * | 2017-06-15 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 障碍物检测方法、装置、设备及存储介质 |
CN110135278A (zh) * | 2019-04-23 | 2019-08-16 | 腾讯科技(上海)有限公司 | 一种障碍物检测方法、装置及电子设备 |
-
2020
- 2020-08-04 CN CN202010773479.8A patent/CN112084854B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109145677A (zh) * | 2017-06-15 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 障碍物检测方法、装置、设备及存储介质 |
CN110135278A (zh) * | 2019-04-23 | 2019-08-16 | 腾讯科技(上海)有限公司 | 一种障碍物检测方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112084854A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109509210B (zh) | 障碍物跟踪方法和装置 | |
CN108509820B (zh) | 障碍物分割方法及装置、计算机设备及可读介质 | |
JP5487298B2 (ja) | 3次元画像生成 | |
CN112084853B (zh) | 一种脚印预测方法、脚印预测装置及人形机器人 | |
CN110674705B (zh) | 基于多线激光雷达的小型障碍物检测方法及装置 | |
CN108537876A (zh) | 基于深度相机的三维重建方法、装置、设备及存储介质 | |
WO2022188663A1 (zh) | 一种目标检测方法及装置 | |
CN114842438A (zh) | 用于自动驾驶汽车的地形检测方法、系统及可读存储介质 | |
CN110349092B (zh) | 一种点云滤波方法及设备 | |
CN112100298B (zh) | 一种建图方法、装置、计算机可读存储介质及机器人 | |
Hebert et al. | Terrain classification techniques from ladar data for autonomous navigation | |
KR20190070514A (ko) | 격자지도 생성 장치 및 방법 | |
Yue et al. | Fast 3D modeling in complex environments using a single Kinect sensor | |
CN112634340A (zh) | 基于点云数据确定bim模型的方法、装置、设备和介质 | |
CN112784873A (zh) | 一种语义地图的构建方法及设备 | |
CN110598541A (zh) | 一种提取道路边缘信息的方法及设备 | |
KR20210026412A (ko) | Cnn을 활용한 카메라 및 라이다 센서 기반 실시간 객체 탐지 방법 | |
CN114419152A (zh) | 一种基于多维度点云特征的目标检测与跟踪方法及系统 | |
CN108367436B (zh) | 针对三维空间中的对象位置和范围的主动相机移动确定 | |
CN113916130B (zh) | 一种基于最小二乘法的建筑物位置测量方法 | |
CN114332134B (zh) | 一种基于密集点云的建筑物立面提取方法和装置 | |
WO2023124676A1 (zh) | 3d模型构建方法、装置和电子设备 | |
CN112084854B (zh) | 一种障碍物检测方法、障碍物检测装置及机器人 | |
CN115406457A (zh) | 一种可行驶区域检测方法、系统、设备及存储介质 | |
CN116993942A (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 |