CN113112491A - 一种悬崖检测方法、装置、机器人及存储介质 - Google Patents
一种悬崖检测方法、装置、机器人及存储介质 Download PDFInfo
- Publication number
- CN113112491A CN113112491A CN202110458627.1A CN202110458627A CN113112491A CN 113112491 A CN113112491 A CN 113112491A CN 202110458627 A CN202110458627 A CN 202110458627A CN 113112491 A CN113112491 A CN 113112491A
- Authority
- CN
- China
- Prior art keywords
- robot
- cliff
- cloud data
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 51
- 230000000007 visual effect Effects 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 41
- 230000009467 reduction Effects 0.000 claims description 36
- 238000007781 pre-processing Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 16
- 238000010606 normalization Methods 0.000 claims description 15
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 8
- 238000001914 filtration Methods 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 5
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000006243 chemical reaction Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000003491 array Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- 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
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- 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
-
- 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/20—Special algorithmic details
- G06T2207/20024—Filtering details
- G06T2207/20032—Median filtering
-
- 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/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
-
- 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/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
-
- 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/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Manipulator (AREA)
Abstract
本申请适用于人工智能技术领域,提供了一种悬崖检测方法、装置、机器人及存储介质,其中,方法包括:获取机器人的视觉范围内并基于机器人坐标系下的第一点云数据;其中,所述第一点云数据包括每个点基于所述机器人坐标系下X、Y和Z轴对应的坐标值;将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据;根据目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定机器人的视觉范围内中的悬崖区域。可根据目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定出机器人的视觉范围内中的悬崖区域,能自主进行悬崖检测,提高了对悬崖检测的智能性,且无需对场景进行部署和维护,从而降低了成本。
Description
技术领域
本申请属于人工智能技术领域,尤其涉及一种悬崖检测方法、装置、机器人及存储介质。
背景技术
随着人工智能技术的快速发展,各种例如机器人等智能产品顺应而生,机器人在各个领域中发挥着越来越重要的工作,移动机器人和移动无人车等具有自主导航和运动的各类机器人在越来越多的场合得以应用。伴随着机器人更加的智能化和运动自主性的提升,其对于周围环境的感知显得尤为重要。然而现实环境复杂多变,移动机器人上安装了应对各种场景的传感器,使得机器人能够准确的感知和识别周围的环境,以保障机器人运动过程中的安全。
针对移动机器人能够自主导航和运动的特点,在移动机器人上安装的传感器包括:红外、超声波、激光雷达等,对机器人附近周围环境中障碍物的判别。由于各类传感器的实现原理不同,使用的场景也会受到不同的限制,在特定环境下无法获取有效的数据用于环境的感知。例如,针对机器人行进路面上的悬崖进行检测,红外、超声波传感器、单线激光雷达等都无法进行准确可靠和有效的判断与识别。然而,无论是游走在商场的导购机器人,还是在室外的变电站巡检机器人,几乎无法避免遇到楼梯、台阶、悬崖等类似的悬崖场景,如果机器人无法准确的自主判断这些危险区域,这些移动机器人就会面临巨大的安全风险。目前针对这类使用场景,人们普遍使用的方法即人为的限制机器人运动区域,划分虚拟围栏限制、使用地磁检测限制等。但是这类方法需要对机器人使用场景重新铺设和修改,或者人工的实地查看圈定运动区域,一方面会增加机器人使用维护和部署成本,另一方面,当场景不易更改或经常变化时机器人将不能够正常安全可靠的使用,机器人的使用场景也必将受到极大限制。而且,一个能够自主导航和运动的移动机器人发展方向理应更加智能,不仅仅局限于人工干预下的安全避障,人为限制使用场景或人为划定运动区域,当机器人在新的未知环境使用时,机器人应当能够自主判断和识别周围环境的能力,而非环境适应机器人,因此目前由于需要人工的辅助改变环境,或环境改变还不能够适应,且部署不美观或有些场景不方便部署,从而使得机器人实现悬崖检测时智能性低且部署维护成本高。
发明内容
本申请实施例提供了一种悬崖检测方法、装置、机器人及存储介质,旨在解决现有机器人实现悬崖检测的智能性低和部署维护成本高的问题。
第一方面,本申请实施例提供了一种悬崖检测方法,包括:获取所述机器人的视觉范围内并基于所述机器人坐标系下的第一点云数据;其中,所述第一点云数据包括每个点基于所述机器人坐标系下X、Y和Z轴对应的坐标值;将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据;根据所述目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定所述机器人的视觉范围内中的悬崖区域。
第二方面,本申请实施例提供了一种悬崖检测装置,包括:
第一获取模块,用于获取机器人的视觉范围内并基于所述机器人坐标系下的第一点云数据;其中,所述第一点云数据包括每个点基于所述机器人坐标系下X、Y和Z轴对应的坐标值;
第二获取模块,用于将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据;
确定模块,用于根据所述目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定所述机器人的视觉范围内中的悬崖区域。
第三方面,本申请实施例提供了一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述悬崖检测方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现上述悬崖检测方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述现上述悬崖检测方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例通过获取所述机器人的视觉范围内中基于机器人坐标系下的第一点云数据,将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据;根据所述目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定所述机器人的视觉范围内中的悬崖区域,能自主进行悬崖检测,提高了对悬崖检测的智能性,且无需对场景进行部署和维护,从而降低了成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的悬崖检测方法的流程示意图;
图2是本申请实施例二提供的悬崖检测方法的流程示意图;
图3是本申请实施例二提供的步骤S216的具体流程示意图;
图4是本申请实施例三提供的悬崖检测方法的流程示意图;
图5是本申请实施例四提供的悬崖检测装置的结构示意图;
图6是本申请实施例五提供的机器人的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请实施例提供的悬崖检测方法,可以应用于机器人,所述机器人可以是服务机器人、娱乐机器人、军用机器人、农业机器人等具有移动功能的机器人。本申请实施例对机器人的具体类型不作任何限制。
为了说明本申请所述的技术方案,下面通过以下实施例来进行说明。
实施例一
请参阅图1,本申请实施例提供的一种悬崖检测方法,包括:
步骤S101,获取所述机器人的视觉范围内并基于所述机器人坐标系下的第一点云数据。
具体地,第一点云数据包括每个点在机器人坐标系下X、Y和Z轴对应的坐标值。获取机器人视觉范围内在机器人坐标系下的点云数据,点云数据包括每一个点的三维信息。可获取机器人视觉范围内的深度数据,并进行预处理从而得到点云数据,预处理包括但不限于平滑处理,采样处理和/或去噪处理等。
在一个实施例中,所述机器人上设有深度相机;所述获取所述机器人的视觉范围内并基于所述机器人坐标系下的第一点云数据,包括:获取通过所述深度相机采集到的深度图像数据;将所述深度图像数据转化为所述机器人坐标系下的第一点云数据。
具体地,可通过机器人上的深度相机获取机器人视觉范围内的深度图像数据,根据深度图像对应像素点在深度相机坐标系下对应的三维空间位置信息,可获得深度图像在深度相机坐标系下的点云数据,并根据深度相机坐标系与机器人坐标系之间的预标定的转换关系,将在深度相机坐标系下的点云数据转化为在机器人坐标系下的点云数据(称为第一点云数据)。
在一个实施例中,所述将所述深度图像数据转化为所述机器人坐标系下的第一点云数据,包括:对所述深度图像数据进行第一降维处理,得到第一降维处理后的深度图像数据;将所述第一降维处理后的深度图像数据转化为所述深度相机坐标系下的第二点云数据;将所述深度相机坐标系下的第二点云数据转化为所述机器人坐标系下的第一点云数据。
具体地,为了减少检测时间,可对获取的深度图像数据进行降维处理,可通过预设的第一降维尺度对获取的深度图像数据进行降维,得到第一降维处理后的深度图像数据。将第一降维处理后的深度图像数据,转化为点云数据,此时的点云数据是在深度相机坐标系下的点云数据(即上述第二点云数据)。根据深度相机坐标系与机器人坐标系之间预标定的转换关系,可将深度相机坐标系下的点云数据转化为机器人坐标系下的点云数据(即上述第一点云数据)。
步骤S102,将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据。
具体地,第一点云数据中包括每个点基于机器人坐标系下X、Y和Z轴对应的坐标值,其中,Z轴可用于表示在世界坐标下的高度信息,为提高处理效率,预设第一有效高度,获取第一点云数据中的Z轴坐标值映射预设第一有效高度内,得到对应的点云数据(即上述目标点云数据)。
在一个实施例中,所述Z轴坐标值用于表示高度;所述将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据,包括:将所述第一点云数据中的第三点云数据的Z轴坐标值更新为所述目标范围的上边界值;其中,所述第三点云数据为第一点云数据中Z轴坐标值大于目标范围内中上边界值的点;将所述第一点云数据中的第四点云数据的Z轴坐标值更新为所述目标范围的下边界值;其中,所述第四点云数据为第一点云数据中Z轴坐标值小于目标范围中下边界值的点;根据更新后的第一点云数据,得到所述目标点云数据。
具体地,可在第一点云数据中,在第一点云数据中将Z轴坐标值大于目标范围内中上边界值的点的Z轴坐标值更新为目标范围的上边界值,且在第一点云数据中将Z轴坐标值小于目标范围内中下边界值的点的Z轴坐标值更新为目标范围的下边界值。将更新后的第一点云数据,确定为目标点云数据。
如在一种具体的应用场景中,目标点云数据是分辨率为640*480个点,每个点都包括X、Y和Z轴对应的坐标值,所有点对应的Z轴坐标值构成Z轴点云数据,此时Z轴点云数据包括640*480个Z轴的坐标值,每个坐标值代表的是对应点距离地面的高度(如单位可以是米,有正有负)。如目标范围预设为[-0.42,+0.22],把所有低于-0.42m的点的Z轴坐标值赋为-0.42m,把所有高于+0.22m的点的Z轴坐标值赋为+0.22m,则所有640*480个点对应的Z轴数值都将固定到[-0.42,+0.22]区间,将得到分辨率为640*480且Z轴数值分布为[-0.42,+0.22]的目标点云数据。
步骤S103,根据所述目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定所述机器人的视觉范围内中的悬崖区域。
具体地,可根据目标点云数据中点的高度信息(即Z轴坐标值)与机器人参考平面之间的关系,确定机器人的视觉范围内中的悬崖区域。如点云数据中点的坐标值与机器人参考平面对应的高度相差很大(如大于预设阈值),则确定对应的点为悬崖点,如可以仅是点云数据比参考平面低很多时,如参考平面数据为0减去点云数据(此时是点云Z轴数据为负数)的结果大于一定阈值的点判定为悬崖;点云数据中点的坐标值与所述机器人参考平面对应的高度相差不大(如小于或等于预设阈值),则确定对应的点不为悬崖点。
在一个实施例中,根据确定出的所有的悬崖点,在所述第一点云数据中确定出与所述悬崖点对应的悬崖点云数据;若连续K次检测所述深度相机采集到的深度图像中的数据对应的点云数据为悬崖点云数据,则将所述悬崖点云数据对应的区域判定为悬崖区域。
具体地,若当前帧的深度图像中的数据对应的点云数据为悬崖点云数据,并在前K-1帧检测出该点对应的点云数据均为悬崖点云数据,则将机器人的视觉范围内当前该点对应的区域判定为悬崖区域。悬崖区域可以是使得两个区域之间存在类似楼梯、台阶、悬崖等具有垂直距离的区域。
在一个实施例中,如果检测到悬崖点云数据对应悬崖区域与机器人较近(根据X轴和Y轴数据判断)可作出对应的第一执行操作(如直接刹车停止等),如果检测到悬崖点云数据对应悬崖区域与机器人较远则可作出对应的第二执行操作(如减速继续行驶等)。
本申请实施例通过获取所述机器人的视觉范围内中基于机器人坐标系下的第一点云数据,将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据;根据目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定机器人的视觉范围内中的悬崖区域,能自主进行悬崖检测,提高了对悬崖检测的智能性,且无需对场景进行部署和维护,从而降低了成本。
实施例二
本实施例是对实施例一的进一步说明,与实施例一相同或相似的地方,具体可参见实施例一或者实施例二的相关描述,此处不再赘述。请参阅图2,上述实施例一中步骤S103包括步骤S201至步骤S217:
步骤S201,根据所述目标点云数据中对应的Z轴坐标数据,通过灰度归一化生成第一目标图像。
具体地,将目标点云数据中对应的Z轴坐标数据进行灰度归一化到0至255,生成灰度归一化后的灰度图像,称为第一目标图像。
如在一种具体的应用场景中,目标点云数据是分辨率为640*480个点,每个点都包括X、Y和Z轴对应的坐标值,目标点云数据中对应的Z轴坐标数据可以是640*480个点分别对应Z轴的坐标值,可以理解是一个640*480的二维数组,该二维数组每个点的值表示对应点的Z轴的坐标值。此时Z轴坐标数据中的各个数据是用于表示高度的物理数值,将目标点云数据中对应的Z轴坐标数据进行灰度归一化到0至255,生成灰度归一化后的灰度图像,称为第一目标图像。如目标点云数据中对应的Z轴坐标数据是大小为640*480的二维数组且数组中数据分布为[-0.42,+0.22]范围中,则灰度归一化后的灰度图像的表示像素点的分辨率为640*480且数据分布为[0,255]的图像。
步骤S202,对所述第一目标图像进行第一预处理,得到第二目标图像;其中,所述第一预处理包括滤波处理、第二降维处理和剪裁处理中的一种或多种处理。
具体地,可对第一目标图像进行中值滤波处理,从而对第一目标图像进行平滑去噪的效果,再对中值滤波处理后的第一目标图像进行降维处理,可通过预设的第二降维尺度对中值滤波处理后的第一目标图像进行降维,得到降维后的第一目标图像,最后再对降维后的第一目标图像剪裁预设区域,得到剪裁后的第一目标图像,称为第二目标图像。
如在一种具体应用场景中,如第一目标图像是像素点的分辨率为640*480的图像,进行第一预处理后的第二目标图像可以是像素点的分辨率为200*100的图像。此处具体数值仅是为理解本申请的举例,并不作为对本申请的限制。
步骤S203,对所述目标点云数据中对应的X轴坐标数据和Y轴坐标数据,进行第二预处理,得到第二预处理后与X轴坐标数据对应第一二维数组,以及得到第二预处理后与Y轴坐标数据对应的第二二维数组;其中,所述第二预处理包括所述第二降维处理和剪裁处理中的一种或多种处理。
如在一种具体应用场景中,在对Z轴数据进行降维和裁剪处理的过程中,对应的X轴坐标数据和Y轴坐标数据也是进行相对应的操作,以获取处理后的点云Z轴所有数据所对应的X轴坐标数据(即第一二维数组)和Y轴坐标数据(即第二二维数组)。假设目标点云数据是分辨率为640*480个点,每个点都包括X、Y和Z轴对应的坐标值,目标点云数据中对应的X轴坐标数据可以是640*480个点分别对应X轴的坐标值,目标点云数据中对应的Y轴坐标数据可以是640*480个点分别对应Y轴的坐标值,将X轴坐标数据和Y轴坐标数据可以理解是一个640*480的二维数组,可通过预设的第二降维尺度对X轴坐标数据进行降维,再对降维后的X轴坐标数据剪裁预设区域,得到剪裁后的X轴坐标数据,剪裁后的X轴坐标数据可以是一个二维数组,称为第一二维数组。如剪裁后的X轴坐标数据可以是200*100大小的数组。同样可通过预设的第二降维尺度对Y轴坐标数据进行降维,再对降维后的Y轴坐标数据剪裁预设区域,得到剪裁后的Y轴坐标数据,剪裁后的Y轴坐标数据可以是一个二维数组,称为第二二维数组。如剪裁后的Y轴坐标数据可以是200*100大小的数组。
步骤S204,对所述第二目标图像进行梯度变换,得到梯度图像。
具体地,通过预设梯度算子计算第二目标图像中像素点的梯度值,得到进行梯度变化后的梯度图像。
步骤S205,对所述第二目标图像,通过反向灰度归一化,得到与所述第二目标图像对应且数据用于表示实际高度的第三二维数组。
具体地,对第二目标图像中像素点的像素值,通过反向灰度归一化,得到与所述第二目标图像对应且数据用于表示实际高度的二维数组,称为第三二维数组,该二维数组中的数据用于表示实际高度数据。
步骤S206,对所述梯度图像进行漫水填充操作,确定第二目标图像或第三二维数组中所述机器人所在平面区域和非机器人所在平面区域。
具体地,在梯度图像中选取漫水填充操作的初始种子,以初始种子为起点对梯度图像进行漫水填充操作,通过漫水填充操作可分割区域,将根据初始种子进行漫水填充操作填充的区域确定为机器人所在的平面区域,将根据初始种子进行漫水填充操作未填充的区域确定非机器人所在的平面区域。初始种子的选取可以是:在梯度图像中将与预设机器人所在平面对应的梯度值相同的梯度值或最相近的点选取为初始种子,如预设机器人所在平面对应的梯度值为零,如在梯度图像中存在梯度值为0的像素点,则将梯度值为0的像素点确定为初始种子,由于初始种子点可能不能找到梯度值为0的绝对平的地方为初始种子点,因此选取的初始种子可以是非固定值,如不存在梯度值为0的像素点,则将梯度值与0之间差值最小的点确定为初始种子。根据梯度图像确定机器人所在平面区域和机器人所在非平面区域,进一步在上述第二目标图像或第三二维数组中与所述梯度图像确定机器人所在平面区域和机器人所在非平面区域对应索引的位置之处,同样确定为机器人所在平面区域和非机器人所在平面区域。
在一个实施例中,为了使得填充区域更好的对应预设的机器人所在平面,在漫水填充的过程中,设置漫水填充的上下边界,漫水填充的上下边界可根据预设机器人所在平面对应的梯度值、降维时的参数和灰度归一化时的参数计算所得,如可根据预设关系映射表,找到与当前预设机器人所在平面对应的梯度值、对第一目标图像进行降维处理时的参数(如对第一目标图像进行降维处理时的参数的降维尺度)和目标点云数据转第一目标图像的灰度归一化时的参数(如当前采用的灰度归一化算法对应预设的影响系数)都相匹配的上下边界值。
步骤S207,在所述非机器人所在平面区域中,将数值属于第一预设悬崖范围内对应的点判定为悬崖点。
具体地,可根据梯度图像确定机器人所在平面区域和机器人所在非平面区域时,在第二目标图像以及第三二维数组中确定出机器人所在平面区域和非机器人所在平面区域。可预设第二目标图像对应的悬崖像素点的范围值,称为第一预设悬崖范围,在第二目标图像中的非机器人所在平面区域中,直接进行悬崖区域判断,将像素值属于第一预设悬范围内对应的像素点判定为悬崖点;或者可预设第三二维数组对应的悬崖点的范围值,称为第一预设悬崖范围,在第三二维数组中的非机器人所在平面区域中,直接进行悬崖区域判断,将点的数值属于第一预设悬范围内对应的点判定为悬崖点。第二目标图像和第三二维数组这两者只相差一个转化系数,此处没有转为点云可在图像中判断,此处的判断只是确定悬崖点在第二目标图像和第三二维数组中的位置(即索引编号),最终输出的悬崖区域为这些判定为悬崖的索引所对应的XYZ三个轴方向的点一起组成的三维点云悬崖区域,将已确定出的悬崖点对应位置的数据组成三维的悬崖点云数据,最终输出的悬崖区域为所有确认为悬崖点云数据组成的区域。
步骤S208,检测所述机器人所在平面区域中对应的点是否满足第一预设拟合平面条件。
具体地,第二目标图像和第三二维数组这两者只相差一个转化系数,同样可以是在第二目标图像或第三二维数组中检测机器人所在平面区域中对应的点是否满足第一预设拟合平面条件。可检测在第二目标图像或第三二维数组中机器人所在平面区域中第一目标范围内是否有超过一定数量的点的值与预设平面点的值之间的差值在预设差值范围内,若存在超过一定数量的点的值与预设平面值之间的差值在预设差值范围内,则判定机器人所在平面区域中的点满足第一预设拟合平面条件,如一定数据的点可是预设用于平面拟合所需点的个数。
步骤S209,在满足第一预设拟合平面条件时,根据满足第一预设拟合平面条件的点,以及所述第一二维数组与所述第二二维数组中对应位置的点,进行第一目标范围的平面拟合,得到第一拟合平面。
具体地,在判定机器人所在平面区域中的点满足第一预设拟合平面条件时对第二目标图像或第三二维数组中对应机器人所在平面区域中第一目标范围内满足第一预设拟合平面条件的点,以及第一二维数组与第二二维数组中对应位置的点,进行平面拟合,得到第一拟合平面,具体可以是通过最小二乘法预设平面方程,将满足第一预设拟合平面条件的点对应的数值作为预设平面方程Z轴的值,将第一二维数组与所述第二二维数组中对应位置的点的数值分别作为预设平面方程X轴和Y轴的值,可以确定出平面方程的系数,得到需要拟合平面的平面方程。将第一二维数组与第二二维数组中与第一目标范围对应的所有点的数组值输入至得到的平面方程,即已知X和Y可以计算拟合的Z数据,可以得到第一拟合平面,从而可计算该平面与机器人参考平面的夹角。第一目标范围可是预设离机器人较近的目标范围(具体可根据X轴和Y轴数据预设范围)。
步骤S210,在不满足第一预设拟合平面条件时,将所述机器人所在平面中数值属于第一预设悬崖范围内对应的点判定为悬崖点。
具体地,在不满足第一预设拟合平面条件时,可对第二目标图像或第三二维数组对应机器人所在平面区域中将数值属于第一预设悬崖范围内对应的点判定为悬崖点。
步骤S211,确定所述第一拟合平面与机器人参考平面的夹角。
步骤S212,当所述第一拟合平面与所述机器人参考平面的夹角大于或等于第一阈值时,在所述机器人所在平面区域中,将数值属于第一预设悬崖范围内对应的点判定为悬崖点。
具体地,当上述第一拟合平面与机器人参考平面之间的夹角大于或等于第一阈值时,可同样根据非机器人所在平面的方式判断对应的悬崖区域,此时同样对第二目标图像或第三二维数组对应机器人所在平面区域中,将数值属于第一预设悬崖范围内对应的点判定为悬崖点。
步骤S213,在所述夹角小于第一阈值时,检测到所述机器人所在平面区域中对应的点满足第二预设拟合平面条件,在所述机器人所在平面中根据满足第二预设拟合平面条件的点,以及所述第一二维数组和所述第二二维数组中对应位置的点,进行第二目标范围的平面拟合,得到第二拟合平面,根据所述第二拟合平面对应拟合平面方程,将所述第一二维数组与所述第二二维数组中对应位置每个点对应的数值作为所述拟合平面方程的输入参数,得到拟合Z轴对应的二维数组。
步骤214,在所述夹角小于第一阈值时,检测到所述机器人所在平面区域中对应的点不满足第二预设拟合平面条件,将所述机器人所在平面中数值属于第一预设悬崖范围内对应的点判定为悬崖点。
具体地,由于根据漫水填充确定的机器人所在平面区域中的点也可能达到悬崖深度对应的要求,就可能是悬崖区域,但是只要上述夹角(即倾斜角)很小机器人可以安全行驶的区域就不能误报成悬崖,另外即使倾斜角很大,但是达不到悬崖深度要求也不能报悬崖(例如,悬崖非常浅,此时倾斜角大也可安全通过),即此时不能误报。即倾斜小的可以走(因为计算的夹角是根据第一目标范围的数据拟合的第一拟合平面与机器人参考平面之间的夹角,第一目标范围可以是为了预设离机器人较近的目标范围,近处区域的数据,只保证近处或许可走,但是远处的还是要进一步判断),倾斜大的并且大于悬崖设定阈值的才会认为是悬崖,因此需要计算机器人前方区域的倾斜角度,如果直接漫水填充的全区域来拟合平面计算夹角则不能够保障小范围内机器人的倾斜角。因此把近处较小区域的范围当作机器人下一时刻可能会运动到的地方,来拟合平面得到第一拟合平面和计算出夹角。当近处计算出的夹角大于阈值的时候根据Z轴的数值判断整个漫水填充区域的哪些区域超过了设置的悬崖深度而认为是悬崖(即上述步骤S212所述的过程)。当近处倾斜角度小于阈值的时候,继续进一步判断,如在夹角小于第一阈值时,先判断是否满足第二预设拟合平面条件,若在第二目标范围内存在超过一定数量的点的值与预设平面值之间的差值在预设差值范围内,则判定机器人所在平面区域中的点满足第二预设拟合平面条件,若在第二目标范围内不存在预设数量的点的值与预设平面值之间的差值在预设差值范围内,则对所有属于非机器人所在平面区域的数据直接进行悬崖判断,此处与不满足第一拟合平面条件、第一拟合平面夹角过大情况的悬崖判断一样,即将机器人所在平面中数值属于第一预设悬崖范围内对应的点判定为悬崖点。若判定机器人所在平面区域中的点满足第二预设拟合平面条件,此时用满足第二预设拟合平面条件的点,以及第一二维数组与第二二维数组中对应位置的点,进行平面拟合,得到第二拟合平面,具体可通过最小二乘法预设平面方程,将满足第二预设拟合平面条件的点对应的数值作为预设平面方程Z轴的值,将所述第一二维数组与所述第二二维数组中对应位置的点的数值分别作为预设平面方程X轴和Y轴的值,可以确定出平面方程的系数,得到需要拟合平面的平面方程。将第一二维数组与所述第二二维数组中与第二目标范围对应的所有点的数组值输入至得到的平面方程,即已知X和Y可以计算拟合的Z数据,可得到第二拟合平面及对应拟合平面方程,将第一二维数组和第二二维数组中对应的点的数值作为第二拟合平面及对应拟合平面方程的输入参数,已知X和Y可以计算拟合的Z数据,得到拟合Z轴对应的二维数组。
假设第一二维数组和所述第二二维数组为分辨率为200*100的数组,根据第一二维数组和所述第二二维数组每个点的值,通过拟合平面方程和得到同位置对应Z轴一个数值,得到拟合Z轴对应的大小为200*100二维数组。
步骤S215,确定所述拟合Z轴对应的二维数组与所述用于表示实际高度的第三二维数组之间的差值数组,并在所述差值数组中确定机器人所在平面区域。
具体地,确定拟合Z轴对应的二维数组中每个数值与用于表示实际高度的第三二维数组中对应位置数值之间的差值,可得到一个差值数组,该差值数组中的每个数值即为拟合Z轴对应的二维数组与用于表示实际高度的第三二维数组对应点之间的实际高度差。根据梯度图像确定机器人所在平面区域和机器人所在非平面区域,在差值数据中与所述梯度图像确定机器人所在平面区域和机器人所在非平面区域对应索引的位置之处,同样对应确定为所述差值数组中机器人所在平面区域和非机器人所在平面区域。
步骤S216,在所述差值数组中并属于机器人所在平面区域的点,将数值属于第二预设悬崖范围内对应的点判定为悬崖点。
具体地,预设第二预设悬崖高度范围,在所述差值数组中并属于机器人所在平面区域的点,将数值属于第二预设悬崖范围对应的点判定为悬崖点。
步骤S217,根据确定出的所有的悬崖点,确定所述机器人的视觉范围内中的悬崖区域。
具体地,根据已确定出的所有悬崖点,确定对应于机器人坐标系下的第一点云数据中的悬崖点,进而确定所述机器人的视觉范围内中的悬崖区域。
在一个实施例中,根据确定出的所有的悬崖点,在所述第一点云数据中确定出与所述悬崖点对应的悬崖点云数据;在连续K次检测所述深度相机采集到的深度图像中的数据对应的点云数据为悬崖点云数据,才将所述悬崖点云数据对应的区域判定为悬崖区域。
在一个实施例中,如图3所示,步骤S216包括步骤S2161至步骤S2165:
步骤S2161,将所述用于表示实际高度的第三二维数组划分成M×N个第一子数组块,其中,所述M和N分别表示划分成子数组块的行数和列数,M≧1且为正整数,N≧1且为正整数。
步骤S2162,将所述差值数组分成M×N个第二子数组块。
具体地,将用于表示实际高度的二维数组划分成M×N个子数组块(称为第一子数组块),同样将上述差值数组划分成M×N个子数组块(称为第二子数组块)。
步骤S2163,在包含所述机器人所在平面点的所有第一子数组块中,确定每个第一子数组块中属于所述机器人所在平面的点的最大值与最小值,并确定出所述最大值和最小值之间差值大于第二阈值的第一目标子数组块。
具体地,在用于表示实际高度的二维数组划分的第一子数组块中,每个第一子数组块有可能只包含平面区域(即机器人所在平面区域),或每个第一子数组块有可能只包含非平面区域(即非机器人所在平面区域),或每个第一子数组块有可能同时包含平面区域和非平面区域。在包含平面区域和非平面区域两种区域的子数组块中,对每个小块中属于机器人所在平面区域的对应点的数值进行最大值和最小值的计算并作为该小块的最大值和最小值;对只包含机器人所在平面区域的子数组块可计算全部数据最大值和最小值作为该小块的最大值和最小值;对只包含非机器平面区域的子数组块此时可不进行操作。得到对应子数组块的最大值和最小值后,计算最大值和最小值之间差值,并将差值大于第二阈值的子数组块作为第一目标子数组块。
步骤S2164,在所述差值数组中,确定出与所述第一目标子数组块位置相对应的第二目标子数组块。
具体地,在差值数组中,确定出与第一目标子数组块位置相同的子数组块,称为第二目标子数组块。
步骤S2165,在所述差值数组中并属于机器人所在平面区域的点,将数值属于第二预设悬崖范围内对应的点判定为悬崖点。
具体地,第二目标子数组块可能只包含机器人所在平面区域的数据,也可能小块同时包含机器人所在平面区域数据和非机器人所在平面区域数据。针对同时包含机器人所在平面区域数据和非机器人所在平面区域数据的小块,判断属于机器人所在平面区域的数据是否为悬崖点。因此在所述第二目标子数组块中并属于机器人所在平面区域的点,将数值属于第二预设悬崖范围内对应的点判定为悬崖点。
上述分块的目的在于解决深度相机视场内一个较大的区域可能同时存在斜坡和悬崖,并且斜坡和悬崖是连通的(即悬崖的底部也是斜坡的底部,悬崖的上部也是斜坡上部)。当深度相机视场内是斜坡和悬崖同时存在且连通的情况,此时是不能够直接使用垂直方向的数值来判断悬崖点的。因为机器人沿着斜坡方向是可以正常安全运动到悬崖的底部,从此路线来看斜坡区域及悬崖底部区域的点不是悬崖点(因为机器人可安全运动到这个区域),但是机器人沿着垂直于悬崖边界方向运动的话机器人是不安全的,此时悬崖底部区域的点应该判断为悬崖点(因为机器人不可安全通行到这个区域)。因此,机器人从不同的路线由悬崖上部向悬崖的底部运动,悬崖底部区域可以判断为悬崖也可以不判断为悬崖,实际上此时的悬崖检测问题变成了悬崖边界检测问题,只需要找出悬崖边界并在悬崖边界附近划分一部分区域作为悬崖区域,把悬崖底部大部分区域划为可通行区域(即不把这部分可通行区域判断为悬崖)。此时,机器人再进行自主导航和运动时,既可以检测到悬崖区域边界,又不会把沿着斜坡可运动区域当作悬崖,结合机器人路径规划算法后机器人既可以安全避险(机器人可以检测到悬崖边界,从而不会对悬崖漏检),又可以智能通行(针对场景中斜坡区域实际是可通行区域,此时不把这部分区域当作悬崖,从而不会误检)。其中,只判断悬崖边界处部分区域为悬崖区域,一种简单可行的方法是把同时包含斜坡和悬崖且连通的大块区域划分成非常多个小块区域,使得每个小块区域不再满足同时包含斜坡和悬崖且连通的情况,更进一步在每个小块中判断是否包含悬崖边界方法的思路依据以下事实:斜坡数据变化缓慢,在分割的小块的小范围内的斜坡数据变化可以忽略;截断的悬崖数据变化大,在小范围内形成的悬崖数据变化仍然很大。因此,大块区域划分成非常多个小块区域之后,在大区域内同时存在斜坡和悬崖并且斜坡和悬崖连通情况下,绝大多数每个小块区域会完全划归于斜坡(只包含了斜坡),这部分只有斜坡的小块中的数值变化幅度较小从而不会确定为悬崖;其余包含了悬崖边界的小块因为数值变化幅度大而会进一步根据阈值来确定小块中的悬崖点。从而实现在此类场景中同时满足不漏检和不误检的双重效果,可提高对悬崖检测的准确性。
本申请实施例,可确定所述机器人所在平面区域和非机器人所在平面区域;在所述机器人所在平面区域和非机器人所在平面区域中分别确定出对应的悬崖点,从而确定所述机器人的视觉范围内中的悬崖区域。可进一步提高对悬崖检测的智能性和效率。
实施例三
本实施例是对实施例一或实施例二的进一步说明,与实施例一或实施例二相同或相似的地方,具体可参见实施例一或者实施例二的相关描述,此处不再赘述。请参阅图4,本申请实施例提供的一种悬崖检测方法,包括:
步骤S301,获取通过所述深度相机采集到的深度图像数据。
步骤S302,将所述深度图像数据转化为所述机器人坐标系下的第一点云数据。
具体地,步骤S301和步骤S302与上述步骤S101相同或相似的地方,具体可参见步骤S101的相关描述,此处不再赘述。
步骤S303,将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据。
具体地,步骤S303与上述步骤S102相同或相似的地方,具体可参见步骤S102的相关描述,此处不再赘述。
步骤S304,根据所述目标点云数据中对应的Z轴坐标数据,通过灰度归一化生成第一目标图像。
步骤S305,对所述第一目标图像进行第一预处理,得到第二目标图像。
步骤S306,对所述目标点云数据中对应的X轴坐标数据和Y轴坐标数据,进行第二预处理,得到第二预处理后与X轴坐标数据对应第一二维数组,以及得到第二预处理后与Y轴坐标数据对应的第二二维数组;
其中,所述第二预处理包括所述第二降维处理和剪裁处理中的一种或多种处理。
步骤S307,对所述第二目标图像进行梯度变换,得到梯度图像。
步骤S308,对所述第二目标图像,通过反向灰度归一化,得到与所述第二目标图像对应且数据用于表示实际高度的第三二维数组;
步骤S309,对所述梯度图像进行漫水填充操作,确定第二目标图像或第三二维数组中所述机器人所在平面区域和非机器人所在平面区域。
步骤S310,在所述非机器人所在平面区域中,将数值属于第一预设悬崖范围内对应的点判定为悬崖点。
步骤S311,检测所述机器人所在平面区域中对应的点是否满足第一预设拟合平面条件。
具体地,在检测所述机器人所在平面区域中的点是否满足第一预设拟合平面条件,在满足第一预设拟合平面条件时进入步骤S312,在不满足第一预设拟合平面条件时进入步骤S313。
步骤S312,根据满足第一预设拟合平面条件的点,以及所述第一二维数组与所述第二二维数组中对应位置的点,进行第一目标范围的平面拟合,得到第一拟合平面。
具体地,对所述平面区域中的满足第一预设拟合平面条件的点进行第一目标范围的平面拟合,得到第一拟合平面后,进入步骤S314。
步骤S313,在不满足第一预设拟合平面条件时,将所述机器人所在平面中数值属于第一预设悬崖范围内对应的点判定为悬崖点。
步骤S314,确定所述第一拟合平面与机器人参考平面的夹角。
步骤S315,检测第一拟合平面与机器人参考平面的夹角是否小于第一阈值。
具体地,在检测第一拟合平面与机器人参考平面的夹角大于或等于第一阈值,进入步骤S316;在检测第一拟合平面与机器人参考平面的夹角小于第一阈值时,进入步骤S317。
步骤S316,在所述机器人所在平面区域中,将数值属于第一预设悬崖范围内对应的点判定为悬崖点。
步骤S317,检测到所述机器人所在平面区域中对应的点是否满足第二预设拟合平面条件。
具体地,在检测到所述机器人所在平面区域中对应的点不满足第二预设拟合平面条件,进入步骤S318;在检测到所述机器人所在平面区域中对应的点满足第二预设拟合平面条件,进入步骤S319。
步骤S318,将所述机器人所在平面中数值属于第一预设悬崖范围内对应的点判定为悬崖点。
步骤S319,在所述机器人所在平面中根据满足第二预设拟合平面条件的点,以及所述第一二维数组和所述第二二维数组中对应位置的点,进行第二目标范围的平面拟合,得到第二拟合平面,根据所述第二拟合平面对应拟合平面方程,将所述第一二维数组与所述第二二维数组中对应位置每个点对应的数值作为所述拟合平面方程的输入参数,得到拟合Z轴对应的二维数组;
步骤S320,确定所述拟合Z轴对应的二维数组与所述用于表示实际高度的第三二维数组之间的差值数组,并在所述差值数组中确定机器人所在平面区域;
步骤S321,在所述差值数组中并属于机器人所在平面区域的点,将数值属于第二预设悬崖范围内对应的点判定为悬崖点。
步骤S322,根据确定出的所有的悬崖点,确定所述机器人的视觉范围内中的悬崖区域。
具体地,步骤S304至步骤S322与上述步骤S201至步骤S217相同或相似的地方,具体可参见步骤S201至步骤S217的相关描述,此处不再赘述。
本申请实施例,可确定所述机器人所在平面区域和非机器人所在平面区域;在所述机器人所在平面区域和非机器人所在平面区域中分别确定出对应的悬崖点,从而确定所述机器人的视觉范围内中的悬崖区域。可进一步提高对悬崖检测的智能性和效率。
实施例四
本申请实施例还提供一种悬崖检测装置,用于执行上述悬崖检测方法实施例中的步骤。悬崖检测装置可以是终端设备中的虚拟装置(virtual appliance),由终端设备的处理器运行,也可以是终端设备本身。
如图5所示,本申请实施例提供的悬崖检测装置500包括:
第一获取模块501,用于获取所述机器人的视觉范围内并基于所述机器人坐标系下的第一点云数据;其中,所述第一点云数据包括每个点基于所述机器人坐标系下X、Y和Z轴对应的坐标值;
第二获取模块502,用于将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据;
确定模块503,用于根据所述目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定所述机器人的视觉范围内中的悬崖区域。
在一个实施例中,所述机器人上设有深度相机;第一获取模块包括:
获取单元,用于获取通过所述深度相机采集到的深度图像数据;
转化单元,用于将所述深度图像数据转化为所述机器人坐标系下的第一点云数据。
在一个实施例中,所述转化单元包括:
处理子单元,用于对所述深度图像数据进行第一降维处理,得到第一降维处理后的深度图像数据;
第一转化子单元,用于将所述第一降维处理后的深度图像数据转化为所述深度相机坐标系下的第二点云数据;
第二转化子单元,用于将所述深度相机坐标系下的第二点云数据转化为所述机器人坐标系下的第一点云数据。
在一个实施例中,所述Z轴坐标值用于表示高度;所述第二获取模块具体用于将所述第一点云数据中的第三点云数据的Z轴坐标值更新为所述目标范围的上边界值;其中,所述第三点云数据为第一点云数据中Z轴坐标值大于目标范围内中上边界值的点;将所述第一点云数据中的第四点云数据的Z轴坐标值更新为所述目标范围的下边界值;其中,所述第四点云数据为第一点云数据中Z轴坐标值小于目标范围中下边界值的点;根据更新后的第一点云数据,得到所述目标点云数据。
在一个实施例中,所述确定模块503包括:
生成单元,用于根据所述目标点云数据中对应的Z轴坐标数据,通过灰度归一化生成第一目标图像;
第一预处理单元,用于对所述第一目标图像进行第一预处理,得到第二目标图像;其中,所述第一预处理包括滤波处理、第二降维处理和剪裁处理中的一种或多种处理;
第二预处理单元,用于对所述目标点云数据中对应的X轴坐标数据和Y轴坐标数据,进行第二预处理,得到第二预处理后与X轴坐标数据对应第一二维数组,以及得到第二预处理后与Y轴坐标数据对应的第二二维数组;其中,所述第二预处理包括所述第二降维处理和剪裁处理中的一种或多种处理;
变换单元,用于对所述第二目标图像进行梯度变换,得到梯度图像;
获得单元,用于对所述第二目标图像,通过反向灰度归一化,得到与所述第二目标图像对应且数据用于表示实际高度的第三二维数组;
第一确定单元,用于对所述梯度图像进行漫水填充操作,确定第二目标图像或第三二维数组中所述机器人所在平面区域和非机器人所在平面区域;
第一判定单元,用于在所述非机器人所在平面区域中,将数值属于第一预设悬崖范围内对应的点判定为悬崖点;
检测单元,用于检测所述机器人所在平面区域中对应的点是否满足第一预设拟合平面条件;
第一拟合单元,用于在满足第一预设拟合平面条件时,根据满足第一预设拟合平面条件的点,以及所述第一二维数组与所述第二二维数组中对应位置的点,进行第一目标范围的平面拟合,得到第一拟合平面;
第二判定单元,用于在不满足第一预设拟合平面条件时,将所述机器人所在平面中数值属于第一预设悬崖范围内对应的点判定为悬崖点;
第二确定单元,用于确定所述第一拟合平面与机器人参考平面的夹角;
第三判定单元,用于当所述第一拟合平面与所述机器人参考平面的夹角大于或等于第一阈值时,在所述机器人所在平面区域中,将数值属于第一预设悬崖范围内对应的点判定为悬崖点;
第二拟合单元,用于在所述夹角小于第一阈值时,检测到所述机器人所在平面区域中对应的点满足第二预设拟合平面条件,在所述机器人所在平面中根据满足第二预设拟合平面条件的点,以及所述第一二维数组和所述第二二维数组中对应位置的点,进行第二目标范围的平面拟合,得到第二拟合平面,根据所述第二拟合平面对应拟合平面方程,将所述第一二维数组与所述第二二维数组中对应位置每个点对应的数值作为所述拟合平面方程的输入参数,得到拟合Z轴对应的二维数组;
第四判定单元,用于在所述夹角小于第一阈值时,检测到所述机器人所在平面区域中对应的点不满足第二预设拟合平面条件,将所述机器人所在平面中数值属于第一预设悬崖范围内对应的点判定为悬崖点;
第三确定单元,用于确定所述拟合Z轴对应的二维数组与所述用于表示实际高度的第三二维数组之间的差值数组,并在所述差值数组中确定机器人所在平面区域;
第五判定单元,用于在所述差值数组中并属于机器人所在平面区域的点,将数值属于第二预设悬崖范围内对应的点判定为悬崖点;
第四确定单元,用于根据确定出的所有的悬崖点,确定所述机器人的视觉范围内中的悬崖区域。
在一个实施例中,所述第四判定单元具体用于:将所述用于表示实际高度的第三二维数组划分成M×N个第一子数组块,其中,所述M和N分别表示划分成子数组块的行数和列数,M≧1且为正整数,N≧1且为正整数;将所述差值数组分成M×N个第二子数组块;在包含所述机器人所在平面点的所有第一子数组块中,确定每个第一子数组块中属于所述机器人所在平面的点的最大值与最小值,并确定出所述最大值和最小值之间差值大于第二阈值的第一目标子数组块;在所述差值数组中,确定出与所述第一目标子数组块位置相对应的第二目标子数组块;在所述第二目标子数组块中并属于机器人所在平面区域的点,将数值属于第二预设悬崖范围内对应的点判定为悬崖点。
在一个实施例中,所述第四确定单元具体用于:根据确定出的所有的悬崖点,在所述第一点云数据中确定出与所述悬崖点对应的悬崖点云数据;若连续K次检测所述深度相机采集到的深度图像中的数据对应的点云数据为悬崖点云数据,则将所述悬崖点云数据对应的区域判定为悬崖区域。
本申请实施例通过获取所述机器人的视觉范围内中基于机器人坐标系下的第一点云数据,将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据;根据所述目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定所述机器人的视觉范围内中的悬崖区域,能自主进行悬崖检测,提高了对悬崖检测的智能性,且无需对场景进行部署和维护,从而降低了成本。
实施例五
如图6所示,本发明的一个实施例还提供一种机器人600包括:处理器601,存储器602以及存储在所述存储器602中并可在所述处理器601上运行的计算机程序603,例如悬崖检测程序。所述处理器601执行所述计算机程序603时实现上述各个悬崖检测方法实施例中的步骤。所述处理器601执行所述计算机程序603时实现上述各装置实施例中各模块的功能,例如图5所示模块501至503的功能。
示例性的,所述计算机程序603可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器602中,并由所述处理器601执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序603在所述机器人600中的执行过程。例如,所述计算机程序603可以被分割成第一获取模块,第二获取模块和确定模块,各模块具体功能在上述实施例中已有描述,此处不再赘述。
所述机器人600可以是具有移动功能的机器人,或者桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器601,存储器602。本领域技术人员可以理解,图6仅仅是机器人600的示例,并不构成对机器人600的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。所称处理器601可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器602可以是所述机器人600的内部存储单元,例如机器人600的硬盘或内存。所述存储器602也可以是所述机器人600的外部存储设备,例如所述机器人600上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器602还可以既包括所述机器人600的内部存储单元也包括外部存储设备。所述存储器602用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器602还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种悬崖检测方法,其特征在于,应用于机器人,所述方法包括:
获取所述机器人的视觉范围内并基于所述机器人坐标系下的第一点云数据;其中,所述第一点云数据包括每个点基于所述机器人坐标系下X、Y和Z轴对应的坐标值;
将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据;
根据所述目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定所述机器人的视觉范围内中的悬崖区域。
2.根据权利要求1所述的悬崖检测方法,其特征在于,所述机器人上设有深度相机;
所述获取所述机器人的视觉范围内并基于所述机器人坐标系下的第一点云数据,包括:
获取通过所述深度相机采集到的深度图像数据;
将所述深度图像数据转化为所述机器人坐标系下的第一点云数据。
3.根据权利要求2所述的悬崖检测方法,其特征在于,所述将所述深度图像数据转化为所述机器人坐标系下的第一点云数据,包括:
对所述深度图像数据进行第一降维处理,得到第一降维处理后的深度图像数据;
将所述第一降维处理后的深度图像数据转化为所述深度相机坐标系下的第二点云数据;
将所述深度相机坐标系下的第二点云数据转化为所述机器人坐标系下的第一点云数据。
4.根据权利要求1所述的悬崖检测方法,其特征在于,所述Z轴坐标值用于表示高度;
所述将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据,包括:
将所述第一点云数据中的第三点云数据的Z轴坐标值更新为所述目标范围的上边界值;其中,所述第三点云数据为第一点云数据中Z轴坐标值大于目标范围内中上边界值的点;
将所述第一点云数据中的第四点云数据的Z轴坐标值更新为所述目标范围的下边界值;其中,所述第四点云数据为第一点云数据中Z轴坐标值小于目标范围中下边界值的点;
根据更新后的第一点云数据,得到所述目标点云数据。
5.根据权利要求4所述的悬崖检测方法,其特征在于,所述根据所述目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定所述机器人的视觉范围内中的悬崖区域,包括:
根据所述目标点云数据中对应的Z轴坐标数据,通过灰度归一化生成第一目标图像;
对所述第一目标图像进行第一预处理,得到第二目标图像;其中,所述第一预处理包括滤波处理、第二降维处理和剪裁处理中的一种或多种处理;
对所述目标点云数据中对应的X轴坐标数据和Y轴坐标数据,进行第二预处理,得到第二预处理后与X轴坐标数据对应第一二维数组,以及得到第二预处理后与Y轴坐标数据对应的第二二维数组;其中,所述第二预处理包括所述第二降维处理和剪裁处理中的一种或多种处理;
对所述第二目标图像进行梯度变换,得到梯度图像;
对所述第二目标图像,通过反向灰度归一化,得到与所述第二目标图像对应且数据用于表示实际高度的第三二维数组;
对所述梯度图像进行漫水填充操作,确定第二目标图像或第三二维数组中所述机器人所在平面区域和非机器人所在平面区域;
在所述非机器人所在平面区域中,将数值属于第一预设悬崖范围内对应的点判定为悬崖点;
检测所述机器人所在平面区域中对应的点是否满足第一预设拟合平面条件;
在满足第一预设拟合平面条件时,根据满足第一预设拟合平面条件的点,以及所述第一二维数组与所述第二二维数组中对应位置的点,进行第一目标范围的平面拟合,得到第一拟合平面;
在不满足第一预设拟合平面条件时,将所述机器人所在平面中数值属于第一预设悬崖范围内对应的点判定为悬崖点;
确定所述第一拟合平面与所述机器人参考平面的夹角;
当所述第一拟合平面与所述机器人参考平面的夹角大于或等于第一阈值时,在所述机器人所在平面区域中,将数值属于第一预设悬崖范围内对应的点判定为悬崖点;
在所述夹角小于第一阈值时,检测到所述机器人所在平面区域中对应的点满足第二预设拟合平面条件,在所述机器人所在平面中根据满足第二预设拟合平面条件的点,以及所述第一二维数组和所述第二二维数组中对应位置的点,进行第二目标范围的平面拟合,得到第二拟合平面,根据所述第二拟合平面对应拟合平面方程,将所述第一二维数组与所述第二二维数组中对应位置每个点对应的数值作为所述拟合平面方程的输入参数,得到拟合Z轴对应的二维数组;
在所述夹角小于第一阈值时,检测到所述机器人所在平面区域中对应的点不满足第二预设拟合平面条件,将所述机器人所在平面中数值属于第一预设悬崖范围内对应的点判定为悬崖点;
确定所述拟合Z轴对应的二维数组与所述用于表示实际高度的第三二维数组之间的差值数组,并在所述差值数组中确定机器人所在平面区域;
在所述差值数组中并属于机器人所在平面区域的点,将数值属于第二预设悬崖范围内对应的点判定为悬崖点;
根据确定出的所有的悬崖点,确定所述机器人的视觉范围内中的悬崖区域。
6.根据权利要求5所述的悬崖检测方法,其特征在于,所述在所述差值数组中并属于机器人所在平面区域的点,将数值属于第二预设悬崖范围内对应的点判定为悬崖点,包括:
将所述用于表示实际高度的第三二维数组划分成M×N个第一子数组块,其中,M和N分别表示划分成子数组块的行数和列数,M≧1且为正整数,N≧1且为正整数;
将所述差值数组分成M×N个第二子数组块;
在包含所述机器人所在平面点的所有第一子数组块中,确定每个第一子数组块中属于所述机器人所在平面的点的最大值与最小值,并确定出所述最大值和最小值之间差值大于第二阈值的第一目标子数组块;
在所述差值数组中,确定出与所述第一目标子数组块位置相对应的第二目标子数组块;
在所述第二目标子数组块中并属于机器人所在平面区域的点,将数值属于第二预设悬崖范围内对应的点判定为悬崖点。
7.根据权利要求5所述的悬崖检测方法,其特征在于,所述根据确定出的所有的悬崖点,确定所述机器人的视觉范围内中的悬崖区域,包括:
根据确定出的所有的悬崖点,在所述第一点云数据中确定出与所述悬崖点对应的悬崖点云数据;
若连续K次检测深度相机采集到的深度图像中的数据对应的点云数据为悬崖点云数据,则将所述悬崖点云数据对应的区域判定为悬崖区域。
8.一种悬崖检测装置,其特征在于,包括:
第一获取模块,用于获取机器人的视觉范围内并基于所述机器人坐标系下的第一点云数据;其中,所述第一点云数据包括每个点基于所述机器人坐标系下X、Y和Z轴对应的坐标值;
第二获取模块,用于将所述第一点云数据中对应点的Z轴坐标值映射至目标范围内,得到目标点云数据;
确定模块,用于根据所述目标点云数据中点的Z轴坐标值与机器人参考平面之间的关系,确定所述机器人的视觉范围内中的悬崖区域。
9.一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110458627.1A CN113112491B (zh) | 2021-04-27 | 2021-04-27 | 一种悬崖检测方法、装置、机器人及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110458627.1A CN113112491B (zh) | 2021-04-27 | 2021-04-27 | 一种悬崖检测方法、装置、机器人及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113112491A true CN113112491A (zh) | 2021-07-13 |
CN113112491B CN113112491B (zh) | 2023-12-19 |
Family
ID=76721182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110458627.1A Active CN113112491B (zh) | 2021-04-27 | 2021-04-27 | 一种悬崖检测方法、装置、机器人及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113112491B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114343507A (zh) * | 2022-01-28 | 2022-04-15 | 深圳市优必选科技股份有限公司 | 地图数据的生成方法、装置及扫地机器人 |
CN116184435A (zh) * | 2023-02-27 | 2023-05-30 | 麦岩智能科技(北京)有限公司 | 一种基于用于机器人的悬崖检测方法、存储介质、设备 |
CN117115407A (zh) * | 2023-10-18 | 2023-11-24 | 深圳市普渡科技有限公司 | 斜坡检测方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190196493A1 (en) * | 2017-12-26 | 2019-06-27 | Ubtech Robotics Corp | Cliff detection method, apparatus, and terminal device |
CN110082783A (zh) * | 2019-05-10 | 2019-08-02 | 北京理工大学 | 一种悬崖检测的方法及装置 |
CN110852312A (zh) * | 2020-01-14 | 2020-02-28 | 深圳飞科机器人有限公司 | 悬崖检测方法、移动机器人的控制方法及移动机器人 |
CN112529963A (zh) * | 2020-12-11 | 2021-03-19 | 深圳一清创新科技有限公司 | 一种楼梯检测方法、装置及移动机器人 |
CN112561941A (zh) * | 2020-12-07 | 2021-03-26 | 深圳市银星智能科技股份有限公司 | 一种悬崖检测方法、装置和机器人 |
-
2021
- 2021-04-27 CN CN202110458627.1A patent/CN113112491B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190196493A1 (en) * | 2017-12-26 | 2019-06-27 | Ubtech Robotics Corp | Cliff detection method, apparatus, and terminal device |
CN110082783A (zh) * | 2019-05-10 | 2019-08-02 | 北京理工大学 | 一种悬崖检测的方法及装置 |
CN110852312A (zh) * | 2020-01-14 | 2020-02-28 | 深圳飞科机器人有限公司 | 悬崖检测方法、移动机器人的控制方法及移动机器人 |
CN112561941A (zh) * | 2020-12-07 | 2021-03-26 | 深圳市银星智能科技股份有限公司 | 一种悬崖检测方法、装置和机器人 |
CN112529963A (zh) * | 2020-12-11 | 2021-03-19 | 深圳一清创新科技有限公司 | 一种楼梯检测方法、装置及移动机器人 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114343507A (zh) * | 2022-01-28 | 2022-04-15 | 深圳市优必选科技股份有限公司 | 地图数据的生成方法、装置及扫地机器人 |
CN116184435A (zh) * | 2023-02-27 | 2023-05-30 | 麦岩智能科技(北京)有限公司 | 一种基于用于机器人的悬崖检测方法、存储介质、设备 |
CN117115407A (zh) * | 2023-10-18 | 2023-11-24 | 深圳市普渡科技有限公司 | 斜坡检测方法、装置、计算机设备和存储介质 |
CN117115407B (zh) * | 2023-10-18 | 2024-02-20 | 深圳市普渡科技有限公司 | 斜坡检测方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113112491B (zh) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2950791C (en) | Binocular visual navigation system and method based on power robot | |
CN109521756B (zh) | 用于无人驾驶车辆的障碍物运动信息生成方法和装置 | |
US11651553B2 (en) | Methods and systems for constructing map data using poisson surface reconstruction | |
JP4409035B2 (ja) | 画像処理装置、特異箇所検出方法、及び特異箇所検出プログラムを記録した記録媒体 | |
CN113112491A (zh) | 一种悬崖检测方法、装置、机器人及存储介质 | |
CN108509820B (zh) | 障碍物分割方法及装置、计算机设备及可读介质 | |
JP5023186B2 (ja) | 3dワーピング手法と固有対象物運動(pom)の検出の組み合わせに基づく対象物の動き検出システム | |
CN112097732A (zh) | 一种基于双目相机的三维测距方法、***、设备及可读存储介质 | |
CN110705385B (zh) | 一种障碍物角度的检测方法、装置、设备及介质 | |
CN113686347B (zh) | 机器人导航路径的生成方法及装置 | |
CN112907625B (zh) | 应用于四足仿生机器人的目标跟随方法及*** | |
CN114815851A (zh) | 机器人跟随方法、装置、电子设备以及存储介质 | |
CN114494329B (zh) | 用于移动机器人在非平面环境自主探索的导引点选取方法 | |
GB2610410A (en) | Incremental dense 3-D mapping with semantics | |
CN113674355A (zh) | 一种基于相机与激光雷达的目标识别与定位方法 | |
CN114387576A (zh) | 一种车道线识别方法、***、介质、设备及信息处理终端 | |
Wang et al. | 3D-LIDAR based branch estimation and intersection location for autonomous vehicles | |
CN114219770A (zh) | 地面检测方法、装置、电子设备及存储介质 | |
CN113111787A (zh) | 目标检测方法、装置、设备以及存储介质 | |
CN113158779A (zh) | 一种行走方法、装置和计算机存储介质 | |
Saleh et al. | Estimating the 2d static map based on moving stereo camera | |
Gao et al. | Design and implementation of autonomous mapping system for ugv based on lidar | |
CN113935946B (zh) | 实时检测地下障碍物的方法及装置 | |
CN117830991B (zh) | 一种基于多模融合的四足机器人复杂场景感知方法及*** | |
CN111487956A (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 |