一种地图构建的角度偏转矫正方法、系统及电子设备与流程

文档序号:31412237发布日期:2022-09-03 10:30阅读:118来源:国知局
一种地图构建的角度偏转矫正方法、系统及电子设备与流程

1.本发明涉及移动地图构建领域,特别涉及一种地图构建的角度偏转矫正方法、系统及电子设备。


背景技术:

2.随着科技的发展,以及人们对生活质量要求的不断提高,智能家居在人们的日常生活中越来越普及,特别是家用扫地机器人,目前的扫地机器人一般都拥有了建图功能,为了方便用户使用,用户可以在app上随时查看机器人构建的环境地图以及机器人的位置信息,然而机器人一般都是以机器人初始工作时刻的朝向建立坐标系,进行地图构建的,若人们在使用机器人时,没有垂直或平行于墙体放置,可能会导致机器人构建的地图是倾斜的,这样会导致机器人工作时的清扫轨迹不垂直于墙体,影响其工作效率,且倾斜的地图不符合人的视觉感官,不易于用户通过app与机器人之间的交互,所以,一种能够根据机器人自身传感器对初始地图角度进行矫正的方法十分重要。


技术实现要素:

3.为了克服目前现有的机器人在构建移动地图时由于机器人本身放置不平导致地图构建存在倾斜角的问题,本发明提供一种地图构建的角度偏转矫正方法、系统及电子设备。
4.本发明为解决上述技术问题,提供一种地图构建的角度偏转矫正方法,其特征在于:包括以下步骤:步骤s1:获取激光数据,将激光数据转换为多个坐标点并按照先后顺序保存;步骤s2:将多个坐标点拟合获得多条线段;步骤s3:计算每条线段的倾斜角度,并将其中存在负角度的数据加上90
°
,调整后的所有倾斜角度排序;步骤s4:线段的数量为一个,该倾斜角度为地图的偏转角;步骤s5:线段的数量为二个,如果只有其中一个角度在0
°
或90
°
附近,则该角度为偏转角;如果两个角度都在0
°
或90
°
附近,则将90
°
附近的角度减去90
°
后,求两个角度的平均值即为偏转角;如果两个角度都不在0
°
或90
°
附近,求取两个倾斜角度的差值,如果差值大于角度阈值,则判定偏转角为0
°
,反之则取两个倾斜角度的平均值作为偏转角;步骤s6:线段的数量为大于二个,将90
°
附近的角度减去90
°
后,重新对所有倾斜角度排序,将相邻的倾斜角度之间求差值,保留差值在阈值内的每两个倾斜角度,将保留的所有倾斜角度计算平均值,获得偏转角;步骤s7:基于获得的偏转角,将大于45
°
的偏转角减去90
°
,获得最后的校正角,作为地图构建的矫正。
5.优选地,在步骤s2中,拟合获得多条线段主要包括:步骤s21:按照坐标点的先后顺序遍历所有坐标点,计算后一个坐标点和前一个坐标点的距离,如果小于距离阈值则继续向下遍历,如果大于距离阈值则分组,并从后一个坐标点开始重新遍历,获得多个数据组;步骤s22:将多个数据组中,坐标点数量少于数量阈值的数据组剔除;步骤s23:在每个数据组中,根据坐标点顺序进行直线拟合,获得对应的线段;步骤s24:根据当前数据组中所有坐标点到线段的距离,将距离大于阈值的坐标点剔除;步骤s25:重新拟合直线后重复步骤
s21-s24,获得对应的线段。
6.优选地,在步骤s25后,还包括:步骤s26:将相邻的每两个线段之间进行对比,选取两个线段之间斜率之差小于阈值且首尾之间的距离小于阈值的两个数据组;步骤s27:合并两个数据组,重复直线拟合的步骤,获得对应的线段。
7.优选地,在步骤s2中,计算每条线段的长度,将长度小于长度阈值的线段滤除。
8.优选地,步骤s1具体包括:步骤s11:获取激光传感器的激光数据,据激光传感器的误差检测范围,选取误差检测范围内的激光数据,激光数据包括多个激光点的距离信息和角度信息;步骤s12:将激光数据转换为多个坐标点并按照先后顺序保存。
9.本发明还提供一种地图构建的角度偏转矫正系统,包括:数据获取单元,用于获取激光数据,将激光数据转换为多个坐标点并按照先后顺序保存;线段拟合单元,用于将多个坐标点拟合获得多条线段;倾斜角计算单元,用于计算每条线段的倾斜角度,并将其中存在负角度的数据加上90
°
,调整后的所有倾斜角度排序;偏转角计算单元,用于当倾斜角度的数量为一个时,该倾斜角度为地图的偏转角;当倾斜角度的数量为二个时,如果只有其中一个角度在0
°
或90
°
附近,则该角度为偏转角;如果两个角度都在0
°
或90
°
附近,则将90
°
附近的角度减去90
°
后,求两个角度的平均值即为偏转角;如果两个角度都不在0
°
或90
°
附近,求取两个倾斜角度的差值,如果差值大于角度阈值,则判定偏转角为0
°
,反之则取两个倾斜角度的平均值作为偏转角;当倾斜角度的数量为大于二个时,将90
°
附近的角度减去90
°
后,重新对所有倾斜角度排序,将相邻的倾斜角度之间求差值,保留差值在阈值内的每两个倾斜角度,将保留的所有倾斜角度计算平均值,获得偏转角;矫正单元,用于基于获得的偏转角,将大于45
°
的偏转角减去90
°
,获得最后的校正角,作为地图构建的矫正。
10.本发明还提供一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被设置为运行时执行上述任一项中所述地图构建的角度偏转矫正方法;所述处理器被设置为通过所述计算机程序执行上述任一项中所述地图构建的角度偏转矫正方法。
11.与现有技术相比,本发明提供的一种地图构建的角度偏转矫正方法、系统及电子设备具有以下优点:
12.1、通过激光数据的存储,对多个坐标点进行线段拟合,并通过多个线段的倾斜角度进行换算,针对线段的数量进行了不同的偏转角的计算,有效利用了激光数据中拟合的线段,并根据线段倾斜角来获得地图构建的矫正参数,结合了地图构建所在的实际场景的物体作为基准,即使没有垂直或平行于墙体放置机器人,也能构建出一个正向放平的地图,让机器人能够更加稳定的工作,自主性更强。
13.2、通过对坐标点进行点间距、数量、点线间距的多种剔除条件筛选,将整个激光数据中的多个坐标点进行线段的准确预估,让拟合的线段接近真实物体的边缘轮廓线区域,降低真实场景线段的计算误差,提高计算的准确性。
附图说明
14.图1是本发明第一实施例所提供的地图构建的角度偏转矫正方法的步骤流程图。
15.图2是本发明第一实施例所提供的地图构建的角度偏转矫正方法中步骤s1的流程图。
16.图3是本发明第一实施例所提供的地图构建的角度偏转矫正方法中步骤s2的流程图。
17.图4是本发明第一实施例所提供的地图构建的角度偏转矫正方法中步骤s25之后一种实施方式的流程图。
18.图5是本发明第二实施例所提供的地图构建的角度偏转矫正系统的模块图。
19.图6是本发明第三实施例所提供的电子设备的模块图。
20.附图标记说明:
21.1、数据获取单元;2、线段拟合单元;3、倾斜角计算单元;4、偏转角计算单元;5、矫正单元;
22.10、存储器;20、处理器。
具体实施方式
23.下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
24.请参阅图1,本发明第一实施例提供一种地图构建的角度偏转矫正方法,其应用于自动循迹的移动式机器人系统中,例如,本实施例可应用于智能家居场景下的扫地机器人路线规划地图的构建工作中,具体包括以下步骤:
25.步骤s1:获取激光数据,将激光数据转换为多个坐标点并按照先后顺序保存。
26.步骤s2:将多个坐标点拟合获得多条线段。
27.步骤s3:计算每条线段的倾斜角度,并将其中存在负角度的数据加上90
°
,调整后的所有倾斜角度排序。
28.步骤s4:线段的数量为一个,该倾斜角度为地图的偏转角。
29.步骤s5:线段的数量为二个,如果只有其中一个角度在0
°
或90
°
附近,则该角度为偏转角;如果两个角度都在0
°
或90
°
附近,则将90
°
附近的角度减去90
°
后,求两个角度的平均值即为偏转角;如果两个角度都不在0
°
或90
°
附近,求取两个倾斜角度的差值,如果差值大于角度阈值,则判定偏转角为0
°
,反之则取两个倾斜角度的平均值作为偏转角。
30.步骤s6:线段的数量为大于二个,将90
°
附近的角度减去90
°
后,重新对所有倾斜角度排序,将相邻的倾斜角度之间求差值,保留差值在阈值内的每两个倾斜角度,将保留的所有倾斜角度计算平均值,获得偏转角。
31.步骤s7:基于获得的偏转角,将大于45
°
的偏转角减去90
°
,获得最后的校正角,作为地图构建的矫正。
32.可以理解,在步骤s1中,激光数据为激光传感器探测周边物体获得的激光数据,该激光数据由多个激光点组成,每个激光点都含有当前点位的坐标信息、距离信息以及角度信息。
33.可以理解,在步骤s2中,根据获得的多个坐标点进行直线拟合,以将多个具备直线排列要求的坐标点进行直线拟合,在本实施例中,采用最小二乘法进行直线拟合。由于空间内具有不同的物体、不同的曲线,则基于线段的拟合会获得多个线段。
34.可以理解,在步骤s3中,根据拟合的线段,线段内每个坐标点都具有相应的角度信息,基于此可计算获得对应线段的倾斜角度,但是由于空间中不同物体的不同线条轮廓,以
及不同物体的摆放姿态不同的原因,不能直接利用该倾斜角度进行校准。每条线段的倾斜角度在-90
°
—90
°
之间,将所有负角度的角加上90
°
变成0
°
—90
°
角,然后所有角度按照从小到大进行排序。
35.可以理解,在本实施例中,角度之间的调整是根据其所在的象限进行的调节,将负角度的角加上90
°
,使得所有的倾斜角度均调整到0
°
—90
°
的区间内。
36.可以理解,在步骤s4、s5及s6中,根据步骤s2线段拟合的结果,可以根据线段的数量进行判断,例如,在步骤s4中,如果线段的数量为一个,则该倾斜角度为地图的偏转角。在步骤s5中,如果线段的数量为二个,则以0
°
—90
°
区间内的两个端点为基准,如果当前线段的倾斜角度和0
°
之差小于阈值,例如设置阈值为10
°
,则定义当前线段在0
°
附近,该阈值同样适用于90
°
附近的判定。在步骤s6中,当线段的数量大于二个时,将90
°
附近的角减去90
°
,以调整到0
°
端点位置将多个线段进行判别。
37.可以理解,在步骤s7中,基于步骤s4、s5及s6中任一步骤获得的偏转角需要进行计算,将大于45
°
的偏转角减去90
°
,获得最后的校正角,作为地图构建的矫正。
38.请参阅图2,步骤s1具体包括:
39.步骤s11:获取激光传感器的激光数据,据激光传感器的误差检测范围,选取误差检测范围内的激光数据,激光数据包括多个激光点的距离信息和角度信息。
40.步骤s12:将激光数据转换为多个坐标点并按照先后顺序保存。
41.可以理解,在步骤s11中,激光传感器基于其自身的使用参数,在预定的适用范围内其检测数据的误差最小,本实施例可基于激光传感器自身的使用参数来获取在最佳检测范围(误差最小)内的激光数据,并剔除范围之外的数据,以提高数据计算的准确性。
42.请参阅图3,在步骤s2中,拟合获得多条线段主要包括:
43.步骤s21:按照坐标点的先后顺序遍历所有坐标点,计算后一个坐标点和前一个坐标点的距离,如果小于距离阈值则继续向下遍历,如果大于距离阈值则分组,并从后一个坐标点开始重新遍历,获得多个数据组。
44.步骤s22:将多个数据组中,坐标点数量少于数量阈值的数据组剔除。
45.步骤s23:在每个数据组中,根据坐标点顺序进行直线拟合,获得对应的线段。
46.步骤s24:根据当前数据组中所有坐标点到线段的距离,将距离大于阈值的坐标点剔除。
47.步骤s25:重新拟合直线后重复步骤s21-s24,获得对应的线段。
48.可以理解,在步骤s21中,坐标点根据顺序进行遍历,如果前后两个坐标点的距离大于阈值,则认为该两个点不能作为拟合同一个直线的两个关联点,故在步骤s21中可以将两个点拆分为两个不同的数据组,并各自重新开始遍历,只有相邻两个点之间的距离在阈值内即可继续向下遍历,故会根据阈值划分为多个数据组。
49.可以理解,在步骤s22中,多个数据组内具有多个坐标点,但是如果坐标点过少也不能拟合出真正的直线线段,故需要剔除数量较少的数据组。
50.可以理解,在步骤s23中,每个数据组进行直线拟合,获得相应的线段。
51.可以理解,在步骤s24中,将拟合的线段在各自的数据组中,计算每个坐标点与线段的距离,如果某个坐标点的距离过大,超过设定的阈值时,也可判定该坐标点不符合拟合线段的条件,需要剔除。
52.可以理解,在步骤s25中,二次剔除坐标点的数据组重新进行步骤s21-s24中依次进行的坐标点点间距离、数量和坐标点线距离的重新计算,最后获得线段。
53.可选地,请参阅图4,作为一种实施例,在步骤s25后,还包括:
54.步骤s26:将相邻的每两个线段之间进行对比,选取两个线段之间斜率之差小于阈值且首尾之间的距离小于阈值的两个数据组。
55.步骤s27:合并两个数据组,重复直线拟合的步骤,获得对应的线段。
56.可以理解,在步骤s26中,将符合要求的两个线段之间进行合并,可以降低计算量。
57.可选地,作为又一种实施例,在步骤s2中,计算每条线段的长度,将长度小于长度阈值的线段滤除,可以减少较短线段对偏转角计算的干扰,提高准确度和计算效率。
58.请参阅图5,本发明第二实施例还提供一种地图构建的角度偏转矫正系统,其用于运行上述第一实施例中的地图构建的角度偏转矫正方法。该地图构建的角度偏转矫正系统可以包括:
59.数据获取单元1,用于执行上述步骤s1,用于获取激光数据,将激光数据转换为多个坐标点并按照先后顺序保存。
60.线段拟合单元2,用于执行上述步骤s2,用于将多个坐标点拟合获得多条线段;
61.倾斜角计算单元3,用于执行上述步骤s3,用于计算每条线段的倾斜角度,并将其中存在负角度的数据加上90
°
,调整后的所有倾斜角度排序;
62.偏转角计算单元4,用于执行上述步骤s4、s5及s6,用于当倾斜角度的数量为一个时,该倾斜角度为地图的偏转角;当倾斜角度的数量为二个时,如果只有其中一个角度在0
°
或90
°
附近,则该角度为偏转角;如果两个角度都在0
°
或90
°
附近,则将90
°
附近的角度减去90
°
后,求两个角度的平均值即为偏转角;如果两个角度都不在0
°
或90
°
附近,求取两个倾斜角度的差值,如果差值大于角度阈值,则判定偏转角为0
°
,反之则取两个倾斜角度的平均值作为偏转角;当倾斜角度的数量为大于二个时,将90
°
附近的角度减去90
°
后,重新对所有倾斜角度排序,将相邻的倾斜角度之间求差值,保留差值在阈值内的每两个倾斜角度,将保留的所有倾斜角度计算平均值,获得偏转角;
63.矫正单元5,用于执行上述步骤s7,用于基于获得的偏转角,将大于45
°
的偏转角减去90
°
,获得最后的校正角,作为地图构建的矫正。
64.当然,在上述单元中,还可以进一步包括多个执行单元用于执行上述第一实施例步骤中的其他步骤,在此不再赘述。
65.请参阅图6,本发明第三实施例提供一种用于实施上述地图构建的角度偏转矫正方法的电子设备,所述电子设备包括存储器10和处理器20,所述存储器10中存储有运算机程序,所述运算机程序被设置为运行时执行上述任一项地图构建的角度偏转矫正方法实施例中的步骤。所述处理器20被设置为通过所述运算机程序执行上述任一项地图构建的角度偏转矫正方法实施例中的步骤。
66.可选地,在本实施例中,上述电子设备可以位于运算机网络的多个网络设备中的至少一个网络设备。
67.与现有技术相比,本发明提供的一种地图构建的角度偏转矫正方法、系统及电子设备具有以下优点:
68.1、通过激光数据的存储,对多个坐标点进行线段拟合,并通过多个线段的倾斜角
度进行换算,针对线段的数量进行了不同的偏转角的计算,有效利用了激光数据中拟合的线段,并根据线段倾斜角来获得地图构建的矫正参数,结合了地图构建所在的实际场景的物体作为基准,即使没有垂直或平行于墙体放置机器人,也能构建出一个正向放平的地图,让机器人能够更加稳定的工作,自主性更强。
69.2、通过对坐标点进行点间距、数量、点线间距的多种剔除条件筛选,将整个激光数据中的多个坐标点进行线段的准确预估,让拟合的线段接近真实物体的边缘轮廓线区域,降低真实场景线段的计算误差,提高计算的准确性。
70.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。
71.在该计算机程序被处理器执行时,执行本技术的方法中限定的上述功能。需要说明的是,本技术所述的计算机存储器可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机存储器例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。
72.计算机存储器的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读信号介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等,或者上述的任意合适的组合。
73.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
74.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上
可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
75.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括数据获取单元、线段拟合单元、倾斜角计算单元、偏转角计算单元以及矫正单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,线段拟合单元还可以被描述为“将多个坐标点拟合获得多条线段的单元”。
76.前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1