移动机器人的障碍物检测方法、装置及机器人
文献发布时间:2024-04-18 19:53:33
技术领域
本申请涉及机器人技术领域,特别涉及一种移动机器人的障碍物检测方法、装置及机器人。
背景技术
避障是移动机器人在自主导航过程中的重要功能之一。目前,常用的避障传感器有机械碰撞开关、红外接近传感器、超声波传感器、微波雷达、激光雷达、结构光传感器、ToF(时间飞行)传感器等。结构光传感器可以利用三角测距原理获取深度信息,测距精度高,可获取障碍物的高度信息,尤其是对低矮障碍物测量优势较大,且不易受阳光干扰,但结构光传感器只能获取激光线上的深度信息,传感器尺寸较大,且对结构稳定性有较高的要求。
为了能够让移动机器人检测并避让电线、袜子等低矮的障碍物,目前市面上的移动机器人主要是采用结构光传感器进行避障,例如科沃斯T8 MAX、石头G10、追觅L10 Pro均采用结构光传感器的避障方案,其中科沃斯T8 MAX和追觅L10 Pro可以在平地上检测出电线、袜子等低矮物体。
在实现本申请的过程中,发明人发现,在实际的应用中,由于环境复杂,实际地面可能会存在不平整或扫地机存在俯仰等因素,若前方地面存在坡度或机器人发生俯仰时,机器人容易将地面误检测为障碍物,造成误避障的行为,导致机器人检测障碍物能力变弱,障碍物检测效果较差。
需要说明的是,本背景技术部分中公开的信息仅用于理解本申请构思的背景技术,并且因此,它可以包含不构成现有技术的信息。
发明内容
本申请的第一个目的在于提出一种移动机器人的障碍物检测方法,解决地面不平整、机器人存在轻微俯仰的情况下障碍物检测的问题。
本申请的第二个目的在于提出一种移动机器人的障碍物检测装置。
本申请的第三个目的在于提出一种移动机器人。
为达上述目的,本申请第一方面实施例提出了一种移动机器人的障碍物检测方法,所述方法包括:获取发射的多条线激光中每条线激光在环境中产生的环境点云数据,所述环境点云数据至少包括线激光投射在当前地面上的地面点集;基于所述地面点集对所述当前地面进行平面拟合;利用所述当前地面的平面拟合结果从所述环境点云数据中确定所述当前地面上存在的障碍物。
根据本申请实施例提出的移动机器人的障碍物检测方法,在地面存在斜坡、机器人发生俯仰的情况下,先通过对线激光的图像进行处理和分析,从而识别出当前地面,进而识别出当前地面上的障碍物,能够正确地从坡道等不平整地面上或在俯仰时正确识别出障碍物,不会将坡道误检测为障碍物,避免误避障行为,并且提高了机器人检测障碍物的能力,增强了障碍物检测效果。
根据本申请的一个实施例,所述基于所述地面点集对所述当前地面进行平面拟合,包括:确定同时向外界发射互相交叉的两条线激光投射在当前地面上的地面点集;基于所述地面点集对线激光进行直线拟合得到线激光的直线方程;根据两条线激光的直线方程对所述当前地面进行平面拟合,得到所述当前地面的地面方程。
根据本申请的一个实施例,所述确定同时向外界发射互相交叉的两条线激光投射在当前地面上的地面点集,包括:对所述两条线激光在外界形成的环境点云数据进行分离,得到每条线激光投射在当前地面上的地面点集。
根据本申请的一个实施例,所述基于所述地面点集对线激光进行直线拟合得到线激光的直线方程,包括:从所述地面点集中确定出位置满足预设高度阈值的点云数据;按第一拟合误差对所述点云数据进行直线拟合得到第一直线方程,确定所述第一直线方程为线激光的直线方程。
根据本申请的一个实施例,所述按第一拟合误差对所述点云数据进行直线拟合得到第一直线方程之后,所述方法还包括:从所述地面点集中确定出距离第一直线方程预设距离阈值的点云数据;按第二拟合误差对距离第一直线方程预设距离的点云数据直线拟合得到第二直线方程,更新所述第二直线方程为线激光的直线方程,其中,所述第二拟合误差小于所述第一拟合误差。
根据本申请的一个实施例,所述利用所述当前地面的地面方程从所述环境点云数据中确定所述当前地面上存在的障碍物,包括:若所述环境点云数据中存在所述当前地面的地面方程之外的点云数据,则将所述地面方程之外的点云数据确定为障碍物点云数据;若所述环境点云数据中不存在所述当前地面的地面方程之外的点云数据,则确定所述当前地面上无障碍物。
根据本申请的一个实施例,所述利用所述当前地面的平面拟合结果从所述环境点云数据中确定所述当前地面上存在的障碍物之后,所述方法还包括:确定所述当前地面的平面拟合结果与预设标定地面的相对偏移参数;依据所述相对偏移参数将所述当前地面上的障碍物拟合到所述预设标定地面上。
根据本申请的一个实施例,所述相对偏移参数包括旋转矩阵和平移矩阵,则所述依据所述相对偏移参数确定所述当前地面上的障碍物在所述预设标定地面上的障碍物信息,包括:依据所述旋转矩阵和平移矩阵对所述障碍物进行旋转变换和平移变换,得到拟合在所述预设标定地面上的障碍物。
为达上述目的,本申请第二方面实施例提出了一种移动机器人的障碍物检测装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的移动机器人的障碍物检测程序,所述处理器执行所述移动机器人的障碍物检测程序时,实现如上述实施例中的移动机器人的障碍物检测方法。
为达上述目的,本申请第三方面实施例提出了一种移动机器人,包括多个结构光传感器以及上述实施例所述的移动机器人的障碍物检测装置。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
图1是本申请一个实施例的移动机器人的障碍物检测方法的流程示意图。
图2是本申请一个实施例中移动机器人发射线激光的场景示意图。
图3是本申请一个实施例中移动机器人进行地面标定和不平整地面测障的场景对比示意图。
图4是本申请一个实施例中移动机器人进行地面位置修正的场景示意图。
图5是本申请一个实施例中获取低位点云数据的场景示意图。
图6是本申请一个实施例中进行粗拟合和细拟合的场景示意图。
图7是本申请一个实施例的移动机器人的障碍物检测装置的结构框图。
图8是本申请一个实施例的移动机器人的结构框图。
具体实施方式
下面详细描述本申请的实施例,下文描述的实施例的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的移动机器人的障碍物检测方法、装置及机器人。
请参阅图1至图6,本申请实施例提出了一种移动机器人的障碍物检测方法,包括以下步骤。
010,获取发射的多条线激光中每条线激光在环境中产生的环境点云数据,环境点云数据至少包括线激光投射在当前地面上的地面点集;
030,基于地面点集对当前地面进行平面拟合;
050,利用当前地面的平面拟合结果从环境点云数据中确定当前地面上存在的障碍物。
移动机器人100可以是家用清洁机器人,例如扫地机。移动机器人100可以配置有一个摄像头模组101和多个线激光发射器,例如配置有两个线激光发射器,并且线激光发射器具体可以采用结构光传感器102,两个结构光传感器102分别安装于移动机器人100的前方左侧和前方右侧,用于向外界发射线激光。
移动机器人100在实施障碍物检测方法时,可以实时开启两个结构光传感器102并实时向外界环境发射线激光,也就是线激光,发射出的激光形成图2中虚线所示的面ABF和面DCE,由于线激光表现的点集特征为一条线段,因此,面ABF与地面的交线为线段BF,面ABF与障碍物200的交线为线段AB,面DCE与地面的交线为线段CE,面DCE与障碍物200的交线为线段DC。摄像头模组101也可以实时采集移动机器人100前方的外界环境的图像,并通过对图像进行光强度解算等图像处理方式得到两个结构光传感器102各自发射的线激光投射在外界环境中的环境点云数据,也就是得到左侧的结构光传感器102投射的线段BF和线段AB,以及得到右侧的结构光传感器102投射的线段CE和线段DC,该四条线段均为由点云形成且外观呈直线状的点集(点云集合)。
可以理解的是,环境点云数据实际上就是一个点云集合,由于环境中包括地面,还包含例如墙体的障碍物,因此环境点云数据中包含有投射到地面上的点云和投射到障碍物上的点云。
左侧的结构光传感器102投射的线段BF和线段AB中,线段BF为地面点云集合,线段AB为障碍物点云集合。右侧的结构光传感器102投射的线段CE和线段DC中,线段CE为地面点云集合,线段DC为障碍物点云集合。通过对摄像头模组101采集到的图像进行图像处理,识别出两个结构光传感器102各自的地面点云集合。
由图3的场景可知,移动机器人100当前所处的环境中,地面可能并不平整,例如移动机器人100位于平地上但前方地面为一个斜坡,或者移动机器人100位于下坡上但前方地面为平地,或者移动机器人100在经过门槛时后轮轧在门槛上导致机器人低头(俯仰),这均会使得移动机器人100检测到的前方地面及其上的障碍物的高度高于它们应当的实际高度,因此可能导致移动机器人100将前方地面视为障碍物,从而规划出错误路线并立即绕行,但实际上前方地面并未存在障碍物或者障碍物实际上距离移动机器人100还较远,或者前方地面只是由于机器人下俯才“相对显得变高”,当机器人经过了门槛后前方地面在机器人视角中即恢复平整地面。这就会导致移动机器人100无法正常移动到前方地面区域内,因此需要对前方地面及其上的障碍物进行正确识别。
由于移动机器人100通常是以标定的水平地面为基准面,将高于基准面上的东西视为障碍物,因此在基于地面点集对当前地面进行平面拟合之后,得到了平面拟合结果,也相当于确定出了地面点集中真正投射在地面上的点云数据。因此,在确定出的真正投射在地面上的点云数据后,进而可得到环境点云数据中的障碍物点集,实现从环境点云数据中准确识别正确的障碍物。得到障碍物点集也便得到了障碍物的正确位置,还能够得到障碍物的尺寸参数(长、宽、高、形状等)。因此移动机器人100不会将上坡U视为障碍物,而只是将墙体W视为障碍物,同时由于墙体W距离移动机器人100较远,因此移动机器人100无需立即避障而是可以选择前行,由此不会将坡道误检测为障碍物,避免误避障行为,并且提高了机器人检测障碍物的能力,增强了障碍物检测效果。
可以理解的是,由于两条线激光各对应一组环境点云数据,而一组环境点云数据确定出一个障碍物点集,因此会得到两个障碍物点集。由于该两个障碍物点集各自包含的障碍物点云可能不完全相同,因此可以对该两个障碍物点集取合集,也就是进行或运算,将合集作为最终的障碍物点集。
若移动机器人100为扫地机,则扫地机不会将坡道误检测为障碍物,从而能够上到坡道上进行清扫,而不是将坡道视为障碍物从而进行避障导致坡道上无法被清扫;并且,扫地机也可以依据正确的障碍物位置参数来决定清扫策略;同时,由于能够提取出更为低矮的障碍物,因此扫地机能够精确避让电线、袜子等低矮障碍物,防止扫地机清扫过程中卷入电线、袜子,减少造成扫地机脱困失败的情况。
若移动机器人100自身位于平整地面上,前方地面也为平整地面,但前方地面上存在障碍物,则移动机器人100在实施本申请的障碍物检测方法时,同样能够得到正确的障碍物空间位置参数,移动机器人100可以依据障碍物的位置参数和避障策略来选择前行或绕行,因此本方法对于不存在斜坡的场景来说,在机器人的移动结果不会产生负面影响。
根据本申请实施例提出的移动机器人的障碍物检测方法,在地面存在斜坡、机器人发生俯仰的情况下,先通过对线激光的图像进行处理和分析,从而识别出当前地面,进而识别出当前地面上的障碍物,能够正确地从坡道等不平整地面上或在俯仰时正确识别出障碍物,不会将坡道误检测为障碍物,避免误避障行为,并且提高了机器人检测障碍物的能力,增强了障碍物检测效果。
在一些实施例中,请参阅图2,步骤030可以包括:
031,确定同时向外界发射互相交叉的两条线激光投射在当前地面上的地面点集;
032,基于地面点集对线激光进行直线拟合得到线激光的直线方程;
033,根据两条线激光的直线方程对当前地面进行平面拟合,得到当前地面的地面方程。
移动机器人100配置的两个结构光传感器102实时向外界发射线激光,且两个结构光传感器102发射的线激光存在交叉,两个结构光传感器102在发射方向上的夹角可以为70°、90°、100°或其他角度,夹角的取值范围大于0°且小于180°,具体采用的角度数值依据实际避障的功能需求而设置。
两个结构光传感器102同时向不同方向发射线激光,因此共发射出两条线激光,形成图2中所示的X型点云图案,摄像头模组101实时采集到的该图案,然后移动机器人100会对该图案进行分析和处理,通过图像上的光的强度解算出点云,然后将两条线激光的点云分别进行提取,得到两条线激光各自的环境点云数据。
环境点云数据中一定会包含投射到地面上的点云,可能会包含投射到障碍物上的点云。并且两者是混在一起,因此需要从环境点云数据中确定出投射到地面上的地面点集。由于障碍物一般是高于地面的,因此投射在障碍物上的点云的位置相对于投射在地面上的点云的位置是较高的。因此在得到每条激光的环境点云数据后,可在环境点云数据中确定出位于预设高度范围内的点云数据作为地面点集。
直线拟合就是通过已知平面上两个相交直线在xyz轴上算出两条直线所在的平面。具体的,可以采用RANSAC(Random Sample Consensus)算法或其他能够进行直线拟合的算法进行直线拟合,RANSAC算法能够从一组观测数据(点云数据)中确定出一条二维直线,因此将其中一条线激光的环境点云数据作为RANSAC算法的输入,然后输出相应的直线方程。
在识别出两个结构光传感器102各自的地面点集之后,对线段BF和线段CE进行平面拟合运算,具体可以采用RANSAC算法进行平面拟合,在三维空间中基于交叉的两条线段算出平面,由此得出平面方程,该平面方程表征了移动机器人100在当前姿态下对地面的位置识别结果,也就是移动机器人100视角下的实际地面(上坡U)的平面方程。
在一些实施例中,步骤031可以包括:对两条线激光在外界形成的环境点云数据进行分离,得到每条线激光投射在当前地面上的地面点集。
左侧和右侧的结构光传感器102在投射线激光时,是采用分别轮动投射的方式,例如左侧的结构光传感器102先投射线激光,然后摄像头模组101采集到对应于左侧的结构光传感器102的第一图像,经过分析和处理得到相应的第一环境点云数据;然后右侧的结构光传感器102先投射线激光,然后摄像头模组101采集到对应于右侧的结构光传感器102的第二图像,经过分析和处理得到相应的第二环境点云数据。其中,第一环境点云数据和第二环境点云数据中的每个点云均配置有不同编号。第一环境点云数据和第二环境点云数据形成总体环境点云数据,也就是在步骤010中获取到的环境点云数据。在通过本方法对总体环境点云数据进行处理和运算时,可以直接通过编号对环境点云数据进行分离,从而分辨出哪些点云对应于哪条线激光。
具体的,第一图像和第二图像可以分别包含160个点云,其中编号1-160用于给第一图像中的160个点云进行编号,编号161-320用于给第二图像中的160个点云进行编号,之后形成包含320个点云的环境点云数据。在获取到该包含320个点云的环境点云数据时,可知编号1-160为左侧线激光的点云,161-320为右侧线激光的点云,从而实现点云的分离。
在得出两条激光线各自的点云之后,即可以依据两条激光线各自的点云得出两条激光线各自对应的地面点集。
在一些实施例中,步骤032可以包括:
0321,从地面点集中确定出位置满足预设高度阈值的点云数据;
0322,按第一拟合误差对所述点云数据进行直线拟合得到第一直线方程,确定第一直线方程为线激光的直线方程。
0323从地面点集中确定出距离第一直线方程预设距离阈值的点云数据;
0324,按第二拟合误差对距离第一直线方程预设距离的点云数据直线拟合得到第二直线方程,更新第二直线方程为线激光的直线方程,其中,第二拟合误差小于第一拟合误差。
由于在环境点云数据中,投射在障碍物上的点云可能较多,甚至多于投射在地面上的点云,此时若直接将环境点云数据作为地面点集输入RANSAC算法,则可能拟合得到的线激光直线方程误差较大,导致后续拟合出的地面与实际地面偏移较大。因此,为了提高RANSAC算法拟合的线激光的直线方程的准确率,可以对环境点云数据进行筛选,以得到较为准确的地面点集。
具体地,可以先通过预设高度阈值t1来将环境点云数据中所有的位置不低于预设高度阈值t1的点云数据滤除,保留位置低于预设高度阈值t1的点云数据,即低位点云数据。预设高度阈值t1(图5中的虚线所示)被设置为高于移动机器人100对识别障碍物的高度判定标准,若移动机器人100将所有高于5mm的物体视为障碍物,则预设高度阈值t1则会被设置为一个大于5mm的数值,例如设置为20mm,由此既能够使所有投射到上坡的点云均低于预设高度阈值t1从而被保留到低位点云数据中,同时又能够将投射到墙体上的大部分点云滤除到低位点云数据之外,使得低位点云数据中包含的点云数据中,大部分均为地面上的点云。
由于低位点云数据中大部分均为地面上的点云,因此对低位点云数据进行直线拟合,可以得到较为准确的线激光的直线方程。
由于基于第一高度阈值确定出低位点云数据中可能包含有障碍物点云。虽然包含的障碍物点云数量较少,但直接对该低位点云数据进行直线拟合可能会得到一条斜边线段,该斜边线段的一端连接于该低位点云数据中地面点云呈现的线段的外端,该斜边线段的另一端连接于低位点云数据中障碍物点云呈现的线段的外端,如图6中的虚线f1所示,而该斜边线段与实际的地面线段之间存在误差,难以用该斜边线段来代表地面线段。
因此,在对低位点云数据进行直线拟合时,可以将直线拟合分为粗拟合和细拟合首先进行粗拟合,然后进行细拟合,并且进行细拟合时采用的拟合误差要小于进行粗拟合时采用的拟合误差。
示例性地,在通过RANSAC算法进行粗拟合时,设置拟合误差为10mm,输出第一直线方程作为粗拟合结果。在通过RANSAC算法进行细拟合时,设置拟合误差为3mm,输出第二直线方程作为细拟合结果。
可以理解的是,粗拟合和细拟合的拟合算法可以采用相同的算法,但两者的输入以及拟合误差的设置不同。另外,在进行粗拟合之前,可以先从低位点云数据中选取距离移动机器人最近的N个点,并只以该N个点为输入进行粗拟合,而不是对所有的低位点云数据进行粗拟合,进一步保证之后经过细拟合得到的细拟合结果中不会包含障碍物点云。N为一预设值,其数值大小可以根据拟合误差来确定。
具体地,粗拟合过程包括:首先通过预设高度阈值t1在环境点云数据中确定出低位点云数据,或者从根据预设高度范围确定出的地面点集中确定出符合预设高度阈值t1的低位点云数据。设置拟合误差,例如10mm。以低位点云数据作为RANSAC算法的输入,对当前地面进行拟合,得到第一直线方程。也就是得出基于xyz轴的第一直线方程Ax+By+Cz+D=0,其中,A、B、C依次为方程的第一系数、第二系数、第三系数,D为常数。该第一直线方程描述的直线可视为一个粗度为10mm的线段。以第一直线方程作为线激光的直线方程。
在得到粗拟合结果之后,也就是得到粗度为10mm的线段之后,先从环境点云数据中将与该粗度为10mm的线段之间的距离小于预设距离阈值的点云筛选出来,相当于将与该粗度为10mm的线段之间距离较远的点作为噪声和干扰点进行滤除,只保留距离较近的点。预设距离阈值可以设置为10mm或其他距离数值。可以理解的是,位于该线段上的点云与该线段之间距离为0,因此属于距离小于预设距离阈值的点云。
经过预设距离阈值的筛选后保留下来的所有点云称为第一点集,并且此时认为点集内基本只包含地面的点云,而包含的障碍物的点云极少。因此可以采用更严格的直线拟合参数,正确拟合出需要的地面,也就是以第一点集作为RANSAC算法输入进行拟合误差更小的细拟合,例如可设置细拟合的拟合误差为3mm,以此得到更为精准的第二直线方程来作为线激光的直线方程。
在一些实施例中,步骤050可以包括:若环境点云数据中存在平面拟合结果之外的点云数据,则将平面拟合结果之外的点云数据确定为障碍物点云数据;若环境点云数据中不存在平面拟合结果之外的点云数据,则确定当前地面上无障碍物。
由于在步骤033中得到了当前地面的地面方程,而地面方程中包含有且仅包含所有的地面点云,因此若不存在障碍物,则环境点云数据中的所有点云均在地面方程上。若存在障碍物,则环境点云数据中会有一些点云在地面方程之外,这些点云即为障碍物点云。
在一些实施例中,在步骤050之后,障碍物检测方法可以包括:
070,确定当前地面的平面拟合结果与预设标定地面的相对偏移参数;
090,依据相对偏移参数将当前地面上的障碍物拟合到预设标定地面上。
具体的,请参阅图3-图6,如场景①所示,在正式使用移动机器人100前,可以先将移动机器人100放置在平整的地面上进行标定,得到移动机器人100与当前标定地面的参数,因此移动机器人100内可以存储有预先标定的地面参数,即存储有水平地面的地面位置参数。如场景②所示,在正式使用移动机器人100时,移动机器人100在平整且无坡度的地面上检测到障碍物。如场景③所示,在正式使用移动机器人100时,前方地面具有一定坡度但移动机器人100未处于坡上,此时检测到了斜坡地面。如场景④所示,在正式使用移动机器人100时,前方地面具有一定坡度但移动机器人100未处于坡上,并且前方斜坡上存在障碍物,此时检测到了斜坡地面及其上的障碍物。
移动机器人100经过对环境点云数据的获取、地面点集与障碍物点集的区分以及对地面点集进行平面拟合,得到了实际地面(上坡U)的平面方程。由于前方呈现为斜坡,因此检测出来的实际地面与标定的地面之间存在误差,因此移动机器人100对实际地面的平面方程和预先标定的地面参数进行运算,算出实际地面与标定地面之间的相对偏移参数,相对偏移参数表征了实际地面上的障碍物由于实际地面呈现为斜坡而偏移的程度,因此通过相对偏移参数能够对地面位置进行修正,也就是将上坡修正为水平地面,同时也能将障碍物的位置进行修正,得到障碍物在水平地面上的位置参数。
如场景⑤所示,移动机器人100前方呈现为上坡U,且上坡U上具有墙体W,此时移动机器人100得到上坡U的地面平面方程,由于斜坡地面与水平平面具有一定的角度,因此两者之间存在一定的偏移,然后算出上坡U与预先标定的平面地面之间相对偏移量,依据相对偏移量将墙体W进行虚拟地旋转、平移或旋转加平移,得到场景⑥中的墙体W的位置。经过地面位置修正和障碍物位置修正,得到了在标定的水平地面上墙体W的期望位置。
在一些实施例中,相对偏移参数包括旋转矩阵和平移矩阵,步骤090可以包括:依据旋转矩阵和平移矩阵对障碍物进行旋转变换和平移变换,得到拟合在预设标定地面上的障碍物。
由于线段BF和线段CE处于交叉状态,因此可以通过旋转矩阵和平移矩阵来表征相对偏移参数,并且通过旋转变换和平移变换的方式来对障碍物点集进行修正,得到修正后的障碍物位置。可以理解的是,旋转矩阵和平移矩阵的算式以及旋转变换和平移变换的算式,对于本领域技术人员来说是可以知晓的,在此不做赘述。
根据本申请实施例提出的移动机器人的障碍物检测方法,在地面存在斜坡、机器人发生俯仰的情况下,先通过对线激光的图像进行处理和分析,基于线激光与斜坡地面的交线拟合出地面交线方程,从而提取出障碍物的点云集合,然后再进行地面位置的矫正,能够将当前检测地面修正为标定的地面上,因此不会将坡道误检测为障碍物,避免误避障行为,并且提高了机器人检测障碍物的能力,增强了障碍物检测效果,能够提取出更为低矮的障碍物。
另外,请参阅图7,本申请实施例还提出了一种移动机器人的障碍物检测装置30,障碍物检测装置30包括存储器31、处理器32及存储在存储器31上并可在处理器32上运行的移动机器人的障碍物检测程序,处理器32执行移动机器人的障碍物检测程序时,实现上述实施例所述的移动机器人的障碍物检测方法。
需要说明的是,本实施例的移动机器人的障碍物检测装置中未披露的细节,请参照本申请实施例中移动机器人的障碍物检测方法的实施例中所披露的细节,此处不再赘述。
根据本申请实施例提出的移动机器人的障碍物检测方法,在地面存在斜坡、机器人发生俯仰的情况下,先通过对线激光的图像进行处理和分析,从而识别出当前地面,进而识别出当前地面上的障碍物,能够正确地从坡道等不平整地面上或在俯仰时正确识别出障碍物,不会将坡道误检测为障碍物,避免误避障行为,并且提高了机器人检测障碍物的能力,增强了障碍物检测效果。另外,请参阅图8,本申请实施例还提出了一种移动机器人100,包括多个结构光传感器102以及上述实施例所述的移动机器人的障碍物检测装置30。移动机器人100可以是家用清洁机器人,例如扫地机。结构光传感器102用于向外界发射的线激光,移动机器人100具体可以配置有两个结构光传感器102,两个结构光传感器102分别安装于移动机器人100的前方左侧和前方右侧。移动机器人100还可以配置有摄像头模组101,摄像头模组101用于获取外界环境的图像,获取的图像中包含有点云数据。
障碍物检测装置30用于执行以下步骤:
010,获取发射的多条线激光中每条线激光在环境中产生的环境点云数据,环境点云数据至少包括线激光投射在当前地面上的地面点集;
030,基于地面点集对当前地面进行平面拟合;
050,利用当前地面的平面拟合结果从环境点云数据中确定当前地面上存在的障碍物。
根据本申请实施例提出的移动机器人的障碍物检测方法,在地面存在斜坡、机器人发生俯仰的情况下,先通过对线激光的图像进行处理和分析,从而识别出当前地面,进而识别出当前地面上的障碍物,能够正确地从坡道等不平整地面上或在俯仰时正确识别出障碍物,不会将坡道误检测为障碍物,避免误避障行为,并且提高了机器人检测障碍物的能力,增强了障碍物检测效果。
在一些实施例中,基于地面点集对当前地面进行平面拟合,包括:确定同时向外界发射互相交叉的两条线激光投射在当前地面上的地面点集;基于地面点集对线激光进行直线拟合得到线激光的直线方程;根据两条线激光的直线方程对当前地面进行平面拟合,得到当前地面的地面方程。
在一些实施例中,确定同时向外界发射互相交叉的两条线激光投射在当前地面上的地面点集,包括:对两条线激光在外界形成的环境点云数据进行分离,得到每条线激光在环境中产生的环境点云数据。
在一些实施例中,基于地面点集对线激光进行直线拟合得到线激光的直线方程,包括:从地面点集中确定出位置满足预设高度阈值的点云数据;按第一拟合误差对点云数据进行直线拟合得到第一直线方程,确定第一直线方程为线激光的直线方程。
在一些实施例中,按第一拟合误差对点云数据进行直线拟合得到第一直线方程之后,方法还包括:从地面点集中确定出距离第一直线方程预设距离阈值的点云数据;按第二拟合误差对距离第一直线方程预设距离的点云数据直线拟合得到第二直线方程,更新第二直线方程为线激光的直线方程,其中,第二拟合误差小于第一拟合误差。
在一些实施例中,利用当前地面的地面方程从环境点云数据中确定当前地面上存在的障碍物,包括:若环境点云数据中存在当前地面的地面方程之外的点云数据,则将地面方程之外的点云数据确定为障碍物点云数据;若环境点云数据中不存在当前地面的地面方程之外的点云数据,则确定当前地面上无障碍物。
在一些实施例中,利用当前地面的平面拟合结果从环境点云数据中确定当前地面上存在的障碍物之后,方法还包括:确定当前地面的平面拟合结果与预设标定地面的相对偏移参数;依据相对偏移参数将当前地面上的障碍物拟合到预设标定地面上。
在一些实施例中,相对偏移参数包括旋转矩阵和平移矩阵,则依据相对偏移参数确定当前地面上的障碍物在预设标定地面上的障碍物信息,包括:依据旋转矩阵和平移矩阵对障碍物进行旋转变换和平移变换,得到拟合在预设标定地面上的障碍物。
需要说明的是,本实施例的移动机器人中未披露的细节,请参照本申请实施例中移动机器人的障碍物检测方法的实施例中所披露的细节,此处不再赘述。
另外需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备以及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
- 自移动机器人及其行走方法、显示障碍物分布的方法
- 一种移动机器人的障碍物检测方法、装置和移动机器人
- 一种移动机器人的障碍物检测方法、装置和移动机器人