地图构建方法及其机器人转让专利

申请号 : CN201811044683.5

文献号 : CN108931983B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林李泽

申请人 : 深圳市银星智能科技股份有限公司

摘要 :

本发明实施例提供了一种地图构建方法及其机器人。该地图构建方法包括:获取运动空间的二维点云图,所述二维点云图为若干个点云数据组成的数据集合;根据所述二维点云图,确定所述运动空间中的墙壁;根据所述墙壁,确定行走主方向。该方法增加了行走主方向搜索功能,可以为机器人提供最佳的行走主方向,使得构图更为平整规律、直观并且符合用户的使用习惯,有利于提高用户的体验。

权利要求 :

1.一种地图构建方法,应用于机器人,其特征在于,所述方法包括:获取运动空间的二维点云图,所述二维点云图为若干个点云数据组成的数据集合;

根据所述二维点云图,确定所述运动空间中的墙壁,其中,所述墙壁在所述二维点云图中呈现为多个点云形成的线段;

根据所述墙壁,确定行走主方向,其中,所述行走主方向所在的直线垂直于所述墙壁所在的直线;

控制所述机器人沿所述行走主方向行走直至到达所述墙壁。

2.根据权利要求1所述地图构建方法,其特征在于,所述根据所述二维点云图,确定所述运动空间中的墙壁,包括:根据所述二维点云图的采集设备的量程,确定搜索范围;

寻找所述搜索范围中长度最长的线段;

确定所述长度最长的线段为所述运动空间中的墙壁。

3.根据权利要求2所述地图构建方法,其特征在于,所述根据所述二维点云图的采集设备的量程,确定搜索范围,包括:将所述点云数据转换为极坐标系下的极坐标点p_1(r,θ),所述极坐标系的原点为当前位置,θ为当前朝向与初始方向之间的夹角角度,r为原点在当前朝向下与点云数据之间的距离;

将所述极坐标表示的点集转换为直角坐标系下的直角坐标点p_2(x,y);其中,x和y均为点云数据转换为直角坐标点的分辨率的整数倍;

根据所述采集设备的最小量程和最大量程,确定在不同所述夹角角度的搜索范围;

其中,所述夹角角度的取值范围为0-360°;所述搜索范围的起点为A(MIN_R*cos(θ),MIN_R*sin(θ)),所述搜索范围的终点为B(MAX_R*cos(θ),MAX_R*sin(θ));MIN_R为所述最小量程;MAX_R为最大量程,θ为所述夹角角度的取值。

4.根据权利要求3所述地图构建方法,其特征在于,所述寻找所述搜索范围中长度最长的线段,包括:在所述搜索范围的起点A和终点B形成的线段之间,等间隔的划出n条垂线;所述垂线之间的间隔为转换分辨率,n为正整数;

根据所述垂线在所述直角坐标系中的直线方程,判断所述点云数据是否落在所述垂线上;

统计每条垂线上的点云数据的数量;

确定具有最多点云数据的垂线为当前角度上的候选线段;

依次计算每个角度上的候选线段;

选择所述候选线段中长度最长的线段为所述搜索范围中长度最长的线段。

5.根据权利要求4所述地图构建方法,其特征在于,所述行走主方向与当前朝向之间的夹角为所述搜索范围中长度最长的线段对应的角度;初始方向为0。

6.根据权利要求2所述地图构建方法,其特征在于,寻找所述搜索范围中长度最长的线段,包括:在所述搜索范围中,分别计算每一个方向上最长的点云线段作为候选线段;

在所述候选线段中,选择最长的候选线段作为所述搜索范围中长度最长的线段。

7.根据权利要求6所述地图构建方法,其特征在于,在所述搜索范围中,分别计算每一个方向上最长的点云线段,包括:以预设的步长,在当前方向的直线上等距离的生成n条垂线,n为正整数;

计算所述点云数据落在每一条所述垂线上的数量;

确定所述点云数据数量最多的垂线为当前方向上最长的点云线段;

根据所述垂线上的点云数据之间的距离计算所述点云线段的长度。

8.根据权利要求7所述地图构建方法,其特征在于,在计算所述点云数据落在所述垂线上的数量之后,所述方法还包括:判断所述垂线的点云数据的数量是否大于预设阈值;

若是,则确定所述垂线为有效垂线;

若否,则确定所述垂线为无效垂线。

9.一种机器人,其特征在于,所述机器人包括:机器人主体,所述机器人主体上设置有行走机构;

传感器,所述传感器设置在所述机器人主体上,用于获取运动空间中的二维点云图;

控制芯片,所述控制芯片内置于所述机器人主体中,与所述传感器连接,用于根据所述传感器采集的数据,执行如权利要求1-8任一所述的地图构建方法,确定行走主方向,并且;

控制所述行走机构,以使所述机器人沿所述行走主方向行走直至到达所述墙壁。

10.根据权利要求9所述的机器人,其特征在于,所述传感器为激光传感器或者RGBD摄像机。

11.根据权利要求9所述的机器人,其特征在于,所述二维点云图为所述传感器以0度至

360度的角度发射信号后,信号与障碍物的交点的二维数据集合。

12.根据权利要求9所述的机器人,其特征在于,所述控制芯片还用于:在所述机器人沿所述行走主方向行走直至到达所述墙壁后,按照预设的运动路径运行。

说明书 :

地图构建方法及其机器人

【技术领域】

[0001] 本发明涉及自动化控制技术领域,尤其涉及一种地图构建方法及其机器人。【背景技术】
[0002] SLAM(simultaneous localization and mapping,即时定位与地图构建)是用于实现如下问题的相关方法:将一个机器人放入未知环境中的未知位置,让机器人逐步描绘出此环境完全的地图,不受障碍行进到各个可进入的角落或者区域。
[0003] SLAM在智能扫地机器人等相关的机器人领域中得到了广泛的应用,是人们现今的研究热点。现有的扫地机器人等在运动过程中,通常采用随机判断其附近的障碍物情况的随机扫描方式来进行构图,并最终根据构图结构来确定机器人的行走路径。
[0004] 这样的构图和相应的行走路径具有随机性,构图的平整和规律程度都不足以满足人们的日常使用要求,用户体验较差。【发明内容】
[0005] 本发明实施例提供一种地图构建方法及其机器人,旨在解决现有技术中构图随机性强,机器人行走不够平整和规律的技术问题。
[0006] 为解决上述技术问题,本发明实施例提供以下技术方案:一种地图构建方法。所述地图构建方法包括:获取运动空间的二维点云图,所述二维点云图为若干个点云数据组成的数据集合;根据所述二维点云图,确定所述运动空间中的墙壁;根据所述墙壁,确定行走主方向。
[0007] 可选地,所述根据所述二维点云图,确定所述运动空间中的墙壁,包括:根据所述二维点云图的采集设备的量程,确定搜索范围;寻找所述搜索范围中长度最长的线段;确定所述长度最长的线段为所述运动空间中的墙壁。
[0008] 可选地,所述根据所述二维点云图的采集设备的量程,确定搜索范围,包括:
[0009] 将所述点云数据转换为极坐标系下的极坐标点p_1(r,θ),所述极坐标系的原点为当前位置,θ为当前朝向与初始方向之间的夹角,r为原点在当前朝向下与点云数据之间的距离;
[0010] 将所述极坐标表示的点集转换为直角坐标系下的直角坐标点p_2(x,y);其中,x和y均为点云数据转换为直角坐标点的分辨率的整数倍;
[0011] 根据所述采集设备的最小量程和最大量程,确定在不同角度的搜索范围;
[0012] 其中,所述角度的取值范围为0至360°;所述搜索范围的起点为A(MIN_R*cos(θ),MIN_R*sin(θ)),所述搜索范围的终点为B(MAX_R*cos(θ),MAX_R*sin(θ));MIN_R为所述最小量程;MAX_R为最大量程,θ为所述角度的取值。
[0013] 可选地,所述寻找所述搜索范围中长度最长的线段,包括:
[0014] 在所述搜索范围的起点A和终点B形成的线段之间,等间隔的划出n条垂线;所述垂线之间的间隔为转换分辨率,n为正整数;
[0015] 根据所述垂线在所述直角坐标系中的直线方程,判断所述点云数据是否落在所述垂线上;
[0016] 统计每条垂线上的点云数据的数量;
[0017] 确定具有最多点云数据的垂线为当前角度上的候选线段;
[0018] 依次计算每个角度上的候选线段;
[0019] 选择所述候选线段中长度最长的线段为所述搜索范围中长度最长的线段。
[0020] 可选地,所述行走主方向与当前朝向之间的夹角为所述搜索范围中长度最长的线段对应的角度;初始方向为0。
[0021] 可选地,所述寻找所述搜索范围中长度最长的线段,包括:
[0022] 在所述搜索范围中,分别计算每一个方向上最长的点云线段作为候选线段;
[0023] 在所述候选线段中,选择最长的候选线段作为所述所述搜索范围中长度最长的线段。
[0024] 可选地,在所述搜索范围中,分别计算每一个方向上最长的点云线段,包括:以预设的步长,在当前方向的直线上等距离的生成n条垂线,n为正整数;计算所述点云数据落在每一个条所述垂线上的数量;确定所述点云数据数量最多的垂线为当前方向上最长的点云线段;根据所述垂线上的点云数据之间的距离计算所述点云线段的长度。
[0025] 可选地,在计算所述点云数据落在所述垂线上的数量之后,所述方法还包括:判断所述垂线的点云数据的数量是否大于预设阈值;若是,则确定所述垂线有效垂线;若否,则确定所述垂线为无效垂线。
[0026] 为解决上述技术问题,本发明实施例还提供以下技术方案:一种机器人。所述机器人包括:
[0027] 机器人主体,所述机器人主体上设置有行走机构;
[0028] 传感器,所述环境传感器设置在所述机器人主体上,用于获取运动空间中的二维点云图;
[0029] 控制芯片,所述控制芯片内置于所述机器人主体中,与所述传感器连接,用于根据所述环境传感器采集的数据,执行如上所述的地图构建方法,确定行走主方向,并且;
[0030] 控制所述行走机构,以使所述机器人沿所述行走主方向行走直至到达所述墙壁。
[0031] 可选地,所述传感器为激光传感器或者RGBD摄像机。
[0032] 可选地,所述二维点云图为所述传感器以0度至360度的角度发射信号后,信号与障碍物的交点的二维数据集合。
[0033] 可选地,所述控制芯片还用于:在所述机器人沿所述行走主方向行走直至到达所述墙壁后,按照预设的运动路径运行。
[0034] 与现有技术相比较,本发明实施例提供的地图构建方法引入了行走主方向的寻找功能,可以在机器人行走过程中沿行走主方向行走直至机器人碰触或者达到墙壁后在继续按照预定的运动路径运行,从而使得地图构图更为平整规律,直观并且更为符合人们的认识,可以更好的满足人们的日常使用要求并提高了用户体验。【附图说明】
[0035] 一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
[0036] 图1为本发明实施例提供的机器人的硬件框图;
[0037] 图2为本发明实施例提供的控制芯片的硬件框图;
[0038] 图3为本发明实施例提供的地图构建方法的方法流程图;
[0039] 图4为本发明另一实施例提供的地图构建方法的方法流程图;
[0040] 图5为本发明实施例提供的寻找行走主方向的方法流程图;
[0041] 图6为本发明实施例提供的角度取θ1时,线段AB的划分示意图;
[0042] 图7为本发明实施例提供的角度取θ2时,线段AB的划分示意图;
[0043] 图8为本发明实施例提供的角度取θ3时,线段AB的划分示意图。【具体实施方式】
[0044] 为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。需要说明的是,当元件被表述“固定于”另一个元件,它可以直接在另一个元件上、或者其间可以存在一个或多个居中的元件。当一个元件被表述“连接”另一个元件,它可以是直接连接到另一个元件、或者其间可以存在一个或多个居中的元件。本说明书所使用的术语“上”、“下”、“内”、“外”、“底部”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0045] 除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
[0046] 此外,下面所描述的本发明不同实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0047] 图1为本发明实施例提供的机器人的结构框图。如图1所示,该机器人可以包括:机器人主体10,传感器20、控制芯片30以及行走机构40。
[0048] 所述机器人主体10是机器人的主体结构,可以根据机器人的实际需要,选用相应的形状结构及制造材质(如硬质塑料或者铝、铁等金属),例如设置为扫地机器人常见的较为扁平的圆柱形。
[0049] 行走机构40是设置在所述机器人主体10上,为机器人提供移动能力的结构装置。该行走机构具体可以采用任何类型的移动装置实现,例如滚轮、履带式等。
[0050] 在本实施例中,所述机器人主体上还设置有传感器20。该传感器20是用于感知外部环境,提供运动空间中的二维点云图用于构图的数据采集设备。
[0051] 所述传感器20具体可以采用现有任何类型的深度信息采集设备,包括但不限于激光传感器和RGBD摄像机。所述运动空间是指机器人当前位置的周边空间。传感器20可以设置为一个或者多个,以满足0至360°的角度全方向探测范围。
[0052] 控制芯片30是内置于所述机器人主体中的电子计算核心,用于执行逻辑运算步骤以实现机器人的智能化控制。在本实施例中,控制芯片30与所述传感器20连接,用于根据所述环境传感器采集的数据,执行预设的算法进行地图构图并且据此控制所述行走机构,使机器人按照合适的路线运动。
[0053] 图2为本发明实施例提供的控制芯片30的结构框图。如图2所示,该控制芯片可以包括:处理器31、存储器32以及通信模块33。
[0054] 所述处理器31、存储器32以及通信模块33之间通过总线的方式,建立任意两者之间的通信连接。
[0055] 处理器31可以为任何类型的单线程或者多线程的处理器。处理器31可以具有一个或者多个处理核心,作为控制中枢,用于获取数据、执行逻辑运算功能以及下发运算处理结果等。
[0056] 存储器32为非易失性计算机可读存储介质,例如至少一个磁盘存储器件、闪存器件、相对于处理器31远程设置的分布式存储设备或者其他非易失性固态存储器件等。其具有程序存储区,用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。
[0057] 这些计算机可执行程序以及功能模块可以供处理器31调用以使处理器31执行一个或者多个方法步骤。存储器32还可以具有数据存储区,用以存储处理器31下发输出的运算处理结果。
[0058] 通信模块33是用于建立控制芯片与外部功能模块之间通信连接的硬件模块。该通信模块33可以根据实际需要,选用对应类型的无线或者有线通信模块,例如WiFi模块、蓝牙模块或者输入/输出接口等。
[0059] 基于该通信模块33,控制芯片30可以采集用户指令并向用户展示相应的交互界面。例如,控制芯片30可以通过WiFi模块建立与用户的智能移动终端之间的连接,以APP或者网页端的方式,采集用户指令或者向用户展示机器人当前的工作状态。
[0060] 基于传感器提供的二维点云图,控制芯片30可以执行本发明实施例提供的地图构建方法,在地图构建过程中增加主方向寻找的功能,并据此对机器人进行控制,使得扫地机器人等的运动路径更直观并且具有较好的用户体验。
[0061] 应当说明的是,根据所要完成的任务,除了以上的功能模组以外,机器人主体10上还可以搭载一个或者多个其它不同的功能模组,相互配合用以执行相应的任务(如储水箱、清扫装置)。
[0062] 图3为本发明实施例提供的地图构建方法。该地图构建方法可以被控制芯片30所执行以实现更为规则和平整的机器人运动方式。如图3所示,所述地图构建方法可以包括如下步骤:
[0063] 310、获取运动空间的二维点云图,所述二维点云图为若干个点云数据组成的数据集合。
[0064] 该运动空间是指图1所示的机器人所处的未知环境,是机器人进行移动所在的空间。在运动空间中可能存在多种不同的障碍物,例如墙壁等。不同的障碍物其长度不相同,而机器人基于搭载的传感器则可以采集获得这些障碍物对应的点云数据,据此完成地图构建的操作。
[0065] 具体的,所述二维点云图可以为所述传感器以0度至360度的角度发射信号后,信号与障碍物的交点的二维数据集合。传感器可以设置在机器人主体的顶部,自身旋转360°的方式采集所述二维点云数据。
[0066] 320、根据所述二维点云图,确定所述运动空间中的墙壁。
[0067] 所述二维点云图中的点云数据给出了当前运动空间中的深度信息,表明了障碍物的长度、距离变化等等。基于不同障碍物的结构特点,例如墙壁的延伸长度很长,呈现为很长的边界或者物体,可以分析确定在二维点云图中包含的墙壁。
[0068] 330、根据所述墙壁,确定行走主方向。
[0069] 在确定了当前运动空间中的墙壁以后,控制芯片根据机器人当前位置与这些墙壁之间的相对位置关系来确定自身的行走主方向,并由此控制机器人进行移动。
[0070] 在本实施例中,该“行走主方向”是指机器人移动过程中应当遵循的基准朝向,在没有其它障碍物的阻挡或者特殊情况下,保持机器人沿行走主方向移动。
[0071] 通过该行走主方向可以大大的减少机器人行走的随机性,确立了机器人移动的大致朝向,可以令行走或者构图更加平整规律,直观并且符合用户使用要求,用户体验较好。
[0072] 可以理解的,由于运动空间中的墙壁将在该二维点云图中呈现为多个点云形成的线段,而且该线段一般会长于运动空间中的其它物体。
[0073] 因此,在一些实施例中,具体可以通过如下方式在二维点云图中确定所述运动空间中的墙壁:
[0074] 首先,根据所述二维点云图的采集设备的量程,确定搜索范围。然后,寻找所述搜索范围中长度最长的线段。最后,确定所述长度最长的线段为所述运动空间中的墙壁。亦即,在搜索范围内,通过遍历的方法找到二维点云图中最长的线段作为墙壁,并据此确定主方向。
[0075] 具体的,上述寻找所述搜索范围中长度最长的线段可以划分为如下两个步骤:
[0076] 一、在所述搜索范围中,分别计算每一个方向上最长的点云线段作为候选线段。
[0077] 传感器20采集的二维点云图是在一个角度范围上的图像(如上述的0-360°的角度范围)。按照预设的步长(如1°或者0.5°)便可以在该搜索范围确定多个不同的方向(即机器人的移动朝向)。
[0078] 二、在所述候选线段中,选择最长的候选线段作为所述所述搜索范围中长度最长的线段。
[0079] 分别遍历每个方向的候选线段以后,便组成了一个完整的候选集合,比较选出这个候选集合中长度最长的线段即可完成上述寻找所述搜索范围中长度最长的线段的任务。
[0080] 图4为本发明实施例提供的候选线段的计算方法的流程图。如图4所示,所述候选线段的计算方法可以包括如下步骤:
[0081] 410、以预设的步长,在当前方向的直线上等距离的生成n条垂线,n为正整数。
[0082] 该预设的步长是一个经验数值,可以由本领域技术人员根据实际的应用情况设置或者调整,表明了搜索的分辨率。例如,该步长可以设置为0.05m。
[0083] 当前方向是当前计算的机器人的朝向所对应的方向。搜索范围在当前方向上的投影是直线上的一段线段,可以理解的,n条垂线都在该线段上设置(即保持在搜索范围内)。
[0084] 420、计算所述点云数据落在每一条所述垂线上的数量。
[0085] 垂线向两端延伸将经过有限数量的点云数据。控制芯片可以基于几何关系判断点云数据是否属于某个垂线,从而实现对于点云数据的数量统计。
[0086] 430、确定所述点云数据数量最多的垂线为当前方向上最长的点云线段。
[0087] 由于,点云数据越多的垂线总是具有更长的长度。因此,在获得1至n的n条垂线所经过的点云数据的数量以后,选择点云数据数量最多的垂线作为候选线段所在的直线。
[0088] 440、根据所述垂线上的点云数据之间的距离计算所述点云线段的长度。
[0089] 在确定了候选线段所在的垂线以后,在垂线上的任意两点点云数据之间最远的距离即为该段点云线段的长度。
[0090] 较佳的是,为了减少误判和计算量,所述候选线段的计算方法还可以包括额外的检测步骤。请继续参阅图4,在步骤420之后,所述方法还包括:
[0091] 450、判断所述垂线的点云数据的数量是否大于预设阈值。若是,则执行步骤451;若否,则执行步骤452。
[0092] 该预设阈值是一个经验数值,可以由本领域技术人员根据实际使用情况进行设置。其与传感器20采集的点云数据的密度相关,密度越高的二维点云图通常需要设置更高的预设阈值。
[0093] 451、确定所述垂线有效垂线,参与步骤430的计算。
[0094] 452、确定所述垂线为无效垂线,在步骤430中不考虑。
[0095] 通过上述预先检测的步骤,可以将明显不是墙壁的点云线段予以排除,起到减少运算量以及避免误判的效果。
[0096] 应当说明的是,本发明实施例提供的地图构建方法可以由控制芯片30的一个或者多个功能模块执行。结合本文中所公开的实施例描述的各个步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员还可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0097] 以下结合具体实例详细描述所述控制芯片30搜索行走主方向的过程。应当说明的是,搜索行走主方向的方法可以与现有任何类型的地图构建算法相结合,为机器人提供行走主方向。如图5所示,所述搜索行走主方向的过程包括如下步骤:
[0098] 510、将所述点云数据转换为极坐标系下的极坐标点p_1(r,θ)。
[0099] 其中,所述极坐标系的原点为当前位置,θ为当前朝向与初始方向之间的夹角,r为原点在当前朝向下与点云数据之间的距离。
[0100] 520、将所述极坐标表示的点集转换为直角坐标系下的直角坐标点p_2(x,y)。
[0101] 其中,转换后直角坐标系中的x和y不是连续的数值,而是点云数据转换为直角坐标点的分辨率的整数倍,亦即以一定的搜索步长对点云数据进行转换,获得相应的直角坐标点以表示障碍物的位置信息。设RMS为所述分辨率,可以根据实际情况的需要进行取值,例如RES=0.05m。
[0102] 530、根据所述传感器的最小量程和最大量程,确定在不同角度的搜索范围。
[0103] 其中,角度的取值范围为0-360°;所述搜索范围的起点为A(MIN_R*cos(θ),MIN_R*sin(θ)),所述搜索范围的终点为B(MAX_R*cos(θ),MAX_R*sin(θ));MIN_R为所述最小量程;MAX_R为最大量程,θ为所述角度的取值,起点A和终点B均为所述直角坐标系下的点。
[0104] 步骤510中引用极坐标的方式可以在某一特定时刻,已知机器人方向与初始方向之间的夹角为θ时,通过传感器20的最小量程和最大量程定出(A,B,θ)。
[0105] 540、在所述搜索范围的起点A和终点B形成的线段上等间隔的划出n条垂线。
[0106] 图6-8分别为角度取θ1、θ2以及θ3时,线段AB的划分示意图。如图6-8所示,所述垂线之间的间隔为分辨率RES,n为正整数,所述n条垂线分别由L1、L2、……Ln表示,在不同的角度会存在不同的垂线。
[0107] 550、根据所述垂线在所述直角坐标系中的直线方程,判断所述二维点云数据是否落在所述垂线上。
[0108] 所述直线方程是直角坐标系中的直线,其可以通过已知的垂线与线段AB之间的交点以及垂线与x轴的夹角计算确定。
[0109] 560、统计每条垂线上的二维点云数据的数量num。所述垂线上的二维点云数据是指点云数据p_2的个数。
[0110] 570、确定具有最多二维点云数据的垂线Ln为当前角度的候选线段。
[0111] 较佳的是,还可以根据点云数据的密度预设一个阈值,用于判断垂线是否有效。只有在垂线经过的二维点云数据的数量大于该阈值时,才判断垂线为有效垂线,可以作为候选线段。当数量小于该阈值时,则确认垂线为无效垂线,忽略该垂线。
[0112] 在每个角度上的候选线段的长度dm可以通过垂线上两个距离最远的点云数据之间的距离计算得到。
[0113] 580、依次计算每个角度的候选线段。其中,θ的取值范围为0至360°。
[0114] 对于每个角度θ都重复执行上述步骤510-570,以确定候选线段所在的垂线并计算候选线段的长度dm(例如图7所示)。
[0115] 590、选择所述候选线段中长度最长的线段为所述搜索范围中长度最长的线段。比较步骤580的计算得到的候选线段之间的长度,即可选出长度最长的目标线段对应的角度为θm。
[0116] 在确定目标线段以后,若机器人的初始方向为0°。所述行走主方向与当前机器人朝向的夹角为θm。当然,在寻找到行走主方向以后,控制芯片还可以在所述机器人沿所述行走主方向行走直至到达所述墙壁后,控制按照预设的运动路径运行,用以减少机器人行走的随机性。
[0117] 综上所述,本发明实施例提供的地图构建方法可以为机器人提供最佳的行走主方向,使得构图更为平整规律、直观并且符合用户的使用习惯,有利于提高用户的体验。
[0118] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。