基于激光测距传感器的移动机器人的地图创建方法与流程

文档序号:15139366发布日期:2018-08-10 19:42阅读:178来源:国知局

本发明涉及移动机器人领域,特别是涉及基于激光测距传感器的移动机器人的地图创建方法。



背景技术:

目前市面上的移动机器人可在无人参与条件下在特定区域自动完成特定工作,给人们带来了便利,市场前景可观。尤其是带有激光测距传感器的移动机器人可以利用激光测距传感器创建周围环境的地图,进行定位和导航。

激光测距传感器是以机器的前进方向建造地图。如图1所示,当机器的前进方向不与墙面垂直的时候,建造出来的地图是歪的。若所建造的地图为歪的,当后续扫地机器人在清扫规划时,所规划的清扫区域会出现斜方块的情况,使得扫地机器人智能性大大下降,沿边清扫效率降低,清扫效果不佳。



技术实现要素:

本发明的目的之一在于克服背景技术中的缺陷,提供一种基于激光测距传感器的移动机器人的地图创建方法,具体方案如下:

一种基于激光测距传感器的移动机器人的地图创建方法,包括以下步骤:

s1:以移动机器人前进方向为参考建立直角坐标系,移动机器人的激光测距传感器扫描工作区域获取激光数据点;

s2:对激光数据点进行数据分块;

s3:在数据分块中提取角点信息;

s4:根据角点信息提取线段信息;

s5:根据线段信息修改直角坐标系;

s6:根据修改的直角坐标系在工作区域内创建地图。

进一步地,可在移动机器人、服务器或其他终端进行所述步骤s2-s6。

进一步地,所述步骤s2包括以下子步骤:

s21:将激光数据点中的第一个点作为第一个数据分块的第一个点;

s22:计算下一点与第一个数据分块上一点的距离,若距离小于设定的阈值,则判断下一点属于第一个分块;当距离大于设定的阈值,则将下一点作为新数据分块的第一个点;

s23:重复上述步骤直到对所有激光数据点完成数据分块;

s24:判断第一个点是否属于最后一个数据分块,若属于最后一个数据分块,则将最后一个数据分块和第一个数据分块合并。

进一步地,所述q为基于数据点与激光测距传感器的距离来确定的动态阈值。

进一步地,所述步骤s3在数据分块中提取角点信息包括如下子步骤:

s31:将第一个数据分块作为当前数据分块,计算当前数据分块中数据点的数量;

s32:判断当前数据分块中数据点的数量与m的大小,若当前数据分块数据分块中数据点的数量小于或等于m,进入步骤s33;若当前数据分块数据分块中数据点的数量大于m,进入步骤s34;

s33:将当前数据分块的两端点作为角点;

s34:选择当前数据分块中两端点拟合直线l,计算当前数据分块中的除两端点外的其他数据点到直线l的距离;

s35:判断数据点到直线l的最大距离dl与n的大小,若最大距离dl小于或等于n,则进入步骤s33;若最大距离dl大于n,则进入步骤s36;

s36:以距离直线l距离最远的点为界将当前数据分块数据分块分为两个新的数据分块,进入步骤s31;

s37:通过重复步骤s31-s36,遍历其他数据分块直到获得所有数据分块中的角点信息。

进一步地,所述m的值为3。

进一步地,所述n的值为0.03米。

进一步地,所述步骤s4包括如下子步骤:

s41:计算每个分块中两角点之间的数据点的数量;

s42:判断两角点之间的数据点的数量与p的大小,若两角点之间的数据点的数量小于或者等于p,进入步骤s43;若两角点之间的数据点的数量大于p,进入步骤s44;

s43:判断数据分块中的数据点数量太少,不拟合成线段;

s44:将数据分块中的数据点进行直线拟合获取相应的线段信息。

进一步地,所述p的值为3。

进一步地,所述步骤s5包括如下子步骤:

s51:选择长度最长的k条线段;

s52:计算k条线段之间的相互角度是否满足角度阈值y;

s53:根据线段长度排序及与其他线段之间的角度关系确定坐标参考线段;

s54:根据坐标参考线段修改直角坐标系。

进一步地,所述k的值为10。

与现有技术相比,本发明技术方案具有以下有益效果:

本发明针对基于激光测距传感器的移动机器人提供一种地图创建方法,以移动机器人前进方向为参考建立直角坐标系,通过对激光数据点进行数据分块,并提取角点信息和线段信息,根据线段信息修改直角坐标系,然后根据修改的直角坐标系在工作区域内创建地图,可以将地图旋转至与墙面垂直的角度,能有效优化后续的清扫规划过程,减少清扫过程中的转弯过程,优化沿边过程的清扫,进而提高清扫过程的智能化和效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图是本发明实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中的移动机器人以机器前进方向来创建地图的示意图;

图2为本发明的移动机器人基于激光测距传感器的的地图创建方法流程图;

图3为图2中步骤s2的一个优化方案的流程图;

图4为数据分块的示意图;

图5为图2中步骤s3的一个优化方案的流程图;

图6为图2中步骤s4的一个优化方案的流程图;

图7为图2中步骤s5的一个优化方案的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明中的移动机器人是在指定封闭式区域工作的覆盖式机器人,如在室内环境工作的安防巡逻机器人或扫地机器人、在特定草坪区域工作的割草机器人以及清洁游泳池的清洁机器人等。

本发明中的移动机器人包括电源模块、行走模块、传感器模块、控制模块、其中,电源模块为可充电电池,用于为移动机器人在工作时提供电能;行走模块包括驱动电机和行走轮,用于使移动机器人在工作区域内运动;传感器模块用于接收工作区域的环境信息并反馈至控制模块;控制模块用于根据传感器模块反馈的信息控制移动机器人运动;

本发明的移动机器人还包括激光测距传感器,激光测距传感器安装在移动机器人底部或顶部,用于获取环境的图片信息。

图2为本发明的移动机器人基于激光测距传感器的的地图创建方法流程图。下面详细介绍带有激光测距传感器的移动机器人如何创建地图。

s1:以移动机器人前进方向为参考建立直角坐标系,移动机器人的激光测距传感器扫描获取激光数据点。

即移动机器人开始工作,启动激光测距传感器,以移动机器人前进方向为参考建立直角坐标系,从工作起点对工作环境扫描一圈,获取激光反射数据,取得墙壁和各障碍物相对于当前激光测距传感器的角度和距离。如果是墙壁和较大障碍物存在的地方,所获取的激光数据点会很接近。尤其是障碍物表面为直线表面的话,获取的激光数据点可以拟合成直线。如果是孤立、较小的障碍物,所获取的激光数据点为孤立的数据点。

s2:对激光数据点进行数据分块。

移动机器人从激光测距传感器扫描获取到激光数据点后,需要将激光数据点进行分块。分块的具体过程如图3所示,包括如下步骤:

s21:将激光数据点中的第一个点作为第一个数据分块的第一个点。

即激光测距传感器扫描获取到n个激光数据点,分别为x1x2...xn-1xn,将x1作为数据分块r1的第一个点。

s22:计算下一点与第一个数据分块上一点的距离,若距离小于设定的阈值q,则判断下一点属于第一个分块;当距离大于设定的阈值q,则将下一点作为新数据分块的第一个点。

记激光测距传感器当前位置为s31,计算x2和x1的距离x1x2,若距离x1x2小于设定的阈值q,则判断x2属于数据分块r1;当大于设定的阈值q,则将x2作为新的数据分块r2的第一个点。

其中,考虑到激光数据点获取的数据点范围大,若是选择固定的阈值q的话,得到的分块不能准确反应激光数据点的分布。因此将阈值q设定为基于数据点与激光测距传感器的距离来确定的动态阈值。

阈值q可选择的范围如表1所示,

表1

下面通过几个举例说明阈值q的选择。

假定x1属于数据分块r1,x2距离激光测距传感器s31的距离s31x2为0.3米,x2和x1的距离为0.01,由于0.01在s31x2所对应的动态阈值0.01-0.03的范围之内,因此判断x2和x1属于同一个数据分块r1,x2为数据分块r1的第二个点。

假定x8属于r3,x9距离激光测距传感器s31的距离s31x9为0.52米,x9和x8的距离为0.09,由于0.09不在s31x9所对应的动态阈值0.04-0.07的范围之内,因此判断x9和x8不属于同一个数据分块r3,x9为新的数据分块r4的第一个点。

s23:重复上述步骤直到对所有激光数据点完成数据分块。

即重复步骤s21-s22,直到获得x1x2...xn-1xn等n个激光数据点的分块信息,n个激光数据点分成k个数据分块,记为r1、r2...rk。

为了更好的说明分块过程,申请人以图4为范例对分块过程进行详细说明。

记激光测距传感器当前位置为a,依次获取的数据点为b1b2...b6,各点到激光雷达位置距离为ab1ab2...ab6,各点与上一点距离为b1b2,b2b3,...,b5b6。首先将b1作为分块r1的第一个点。

然后计算b2与激光测距传感器a的距离ab2,计算b2和b1的距离b1b2。由于b1b2小于b2距离激光传感器a的距离ab2对应的阈值,因此判断b2属于数据分块r1。同理可得,b3和b1、b2属于同一个分块r1。

对于b4而言,计算b4与激光测距传感器a的距离ab4,以及计算b3和b4的距离b3b4。由于b3b4大于b4距离激光传感器a的距离ab4所对应的阈值,因此b3和b4不属于同一数据分块,b4属于分块r2。同理可得,b5、b6和b4属于同一个分块r2。

s24:判断第一个点是否属于最后一个数据分块,若属于最后一个数据分块,则将最后一个数据分块和第一个数据分块合并。

由于激光测距传感器是从工作起点对工作环境扫描一圈,因此有可能第一个点x1属于最后一个数据分块rk,因此需判断第一个点x1是否属于分块rk,若x1属于最后一个数据分块rk,则将最后一个数据分块rk和第一个数据分块r1合并。

具体地,计算x1距离激光测距传感器a的距离ax1,以及x1和xn的距离x1xn,判断x1xn是否落入ax1所对应的阈值范围。若x1xn在ax1所对应的阈值范围内,则判定x1属于分块rk,将r1和rk合并为一个新的分块r',并且将分块r1作为新分块r'的后半部分,此时的数据分块分别为r2、r3...r';若x1xn在ax1所对应的阈值范围内,则判定r1和rk不合并,此时的数据分块分别为r1、r2...rk。

s3:在数据分块中提取角点信息。

如图5所示,在数据分块中提取角点信息包括如下子步骤:

s31:将第一个数据分块作为当前数据分块,计算当前数据分块中数据点的数量。

即根据步骤s2得到的数据分块:r1r2...rk-1rk或者r2...rk-1、r'。首先将r1作为当前的数据分块,计算r1中数据点的数量。

s32:判断当前数据分块中数据点的数量与m的大小,若当前数据分块数据分块中数据点的数量小于或等于m,进入步骤s33;若当前数据分块数据分块中数据点的数量大于m,进入步骤s34;

即判断r1数据分块中数据点的数量与设置的m值的大小。若r1数据分块中数据点的数量小于或等于m,则进入步骤s33;若r1数据分块中数据点的数量大于m,进入步骤s34。

本发明实施例中,m的一个优选实施例为3,即判断r1数据分块中数据点的数量与3的大小关系。若r1数据分块中数据点的数量小于或等于3个,则进入步骤s33;若r1数据分块中数据点的数量大于3个,进入步骤s34。

s33:将当前数据分块的两端点作为角点。

当r1数据分块中数据点的数量小于或等于3时,说明该分块中的数据点太少,可能为很小的障碍物或者离散的噪声点。此时,只需选择r1数据分块中的两个端点作为所需的角点。

s34:选择当前数据分块中两端点拟合直线l,计算当前数据分块中的除两端点外的其他数据点到直线l的距离。

由于r1数据分块中数据点的数量大于3,说明r1数据分块中的数据点较多。数据点较多时可能存在数据点偏离,不能直接选择两端点作为角点。因此首先选择r1数据分块中的两端点,以这两个点拟合成直线。然后,计算r1数据分块中其他的点距离这条直线的距离。

s35:判断数据点到直线l的最大距离dl与n的大小,若最大距离dl小于或等于n,则进入步骤s36;若最大距离dl大于n,则进入步骤s37;

即计算出r1数据分块中其他的点距离拟合直线l的距离,判断距离这条直线l的最大距离dl与设定的阈值n的大小。若最大距离dl小于或等于n,则进入步骤s36;若最大距离dl大于n,则进入步骤s37。

本发明实施例中,n的一个优选实施例为0.03米,即判断r1数据分块中数据点距离拟合直线l的最大距离dl与0.03米的大小关系。若r1最大距离dl小于或等于0.03米,说明r1数据分块中的数据点分布在拟合直线l周围。以两端点拟合的直线可以反映数据点的分布,则进入步骤s33,将当前数据分块的两端点作为角点;若最大距离dl大于0.03米,则进入步骤s36。

s36:以距离所述直线距离最远的点为界将当前数据分块数据分块分为两个新的数据分块,进入步骤s31;

当r1数据分块中数据点距离拟合直线l的最大距离dl大于0.03米,说明r1数据分块中存在数据点偏离拟合直线l过多,直线拟合效果差因此以两端点拟合的直线l不能反映数据点的分布。因此,需要以距离所述直线距离最远的点为界将当前数据分块数据分块分为两个新的数据分块,进入步骤s31;

s37:通过重复步骤s31-s36,遍历其他数据分块直到获得所有数据分块中的角点信息。

即移动机器人对其他数据分块重复s31-s36,直到获得所有的数据分块的角点。

s4:根据角点信息提取线段信息。

如图6所示,在数据分块中提取角点信息包括如下子步骤:

s41:计算每个分块中两角点之间的数据点的数量。

即获得所有的数据分块的角点后,计算数据分块中两角点之间的数据点的数量。

s42:判断两角点之间的数据点的数量与p的大小,若两角点之间的数据点的数量小于或者等于p,进入步骤s43;若两角点之间的数据点的数量大于p,进入步骤s44。

即判断所有数据分块中两角点之间的数据点的数量与设定的阈值p的大小关系。若两角点之间的数据点的数量小于或者等于p,进入步骤s43;若两角点之间的数据点的数量大于p,进入步骤s44。

本发明实施例中,p的一个优选实施例为3,即若两角点之间的数据点的数量小于或者等于3个,则进入步骤s43;若两角点之间的数据点的数量大于3个,进入步骤s44。

s43:判断数据分块中的数据点数量太少,不拟合成线段。

即当两角点之间的数据点的数量小于或者等于3个,说明数据分块中的数据点数量太少,可能为很小的障碍物或者离散的噪声点,因此,移动机器人判断数据分块中的数据点数量太少,不拟合成线段。

s44:将数据分块中的数据点进行直线拟合获取相应的线段信息。

即当两角点之间的数据点的数量大于3个,说明数据分块中的数据点数量足够,因此,将数据分块中的数据点进行直线拟合获取相应的线段信息。

下面通过具体的范例来说明如何从角点信息中提取线段信息。

范例1:假定分块r1中有数据点x1,x2,x3,其中x1和x3为角点。由于角点x1和x3中间的数据点只有x2一个数据点,小于设定的值p(p为3),移动机器人判定数据点太少,不拟合成线段。

范例2:假定分块r5中有数据点x8,x9,x10,x11,x12其中x8和x12为角点。由于角点x8和x12中间的数据点有:x9,x10,x11,等于设定的值p(p为3),移动机器人判定数据点太少,不拟合成线段。

范例3:假定分块r10中有数据点x21,x22,...,x25,x26,其中x21和x26为角点。由于角点x21和x26中间的数据点有:x22,x23,x24,x25,大于设定的值p(p为3),则移动机器人判定数据量足够,通过最小二乘法拟合拟合成线段。

s5:根据线段信息修改直角坐标系。

具体地,如图7所示,包括如下子步骤:

s51:选择长度最长的k条线段。

本发明实施例是通过激光测距传感器扫描获得的图片中寻找墙面,以墙面所在的线段为参考建立直角坐标系。其中,激光测距传感器扫描获得的图片中墙面所在的线段长于障碍物所在的线段。因此,步骤s51选择长度最长的k条线段。

本发明实施例中,k的一个优选实施例为10,即只选择长度最长的k条线段来考查。

s52:计算k条线段之间的相互角度是否满足角度阈值y;

由于实际情况中存在墙面以及与墙面或互相平行或互相垂直的障碍物,因而激光测距传感器扫描得到的地图中一般有墙面等长直线特征,以及与之平行或垂直的障碍物长直线存在。因此,计算k条线段之间的相互角度是否满足角度阈值y,计算k条线段之间的相互角度是否在y度以内或者【90-y,90+y】之间。

角度阈值y的一个优选实施例为3度,即计算k条线段之间的相互角度在3度以内或者【87,93】之间。

s53:根据线段长度排序及与其他线段之间的角度关系确定坐标参考线段。

移动机器根据步骤s51中的k线段长度排序,参考步骤s52中的k条线段之间的相互角度是否满足角度阈值y。即移动机器人首先确定步骤s52中满足角度阈值y的线段,然后选择满足角度阈值y的线段之中长度最长的线段,将此线段确定为坐标参考线段。

s54:根据坐标参考线段修改直角坐标系。

根据步骤s53确定了坐标参考线段之后,移动机器人调整激光测距传感器的方向,将其旋转至坐标参考线段所在方向,即能将地图旋转至与实际房间中的墙面平行或垂直的方向。

另外,为了提高移动机器人的地图旋转效果,激光测距传感器扫描取得多张地图,按照本发明前述步骤选择坐标参考线段,将其旋转至坐标参考线段所在方向修改直角坐标系,比较各张地图中的旋转效果,选择旋转效果最佳的一张地图进行旋转,修改直角坐标系。

s6:根据修改的直角坐标系在工作区域内创建地图。

根据步骤s4修改了直角坐标系后,在工作区域内行进,并创建工作区域内的地图。

当然,本发明实施例是在移动机器人上进行所述步骤s2-s6。本发明实施例不限于在移动机器人上,也可以在服务器或其他终端进行步骤s2-s6。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1