导航地图构建方法、装置、机器人及存储介质与流程

文档序号:30295748发布日期:2022-06-04 17:54阅读:140来源:国知局
导航地图构建方法、装置、机器人及存储介质与流程

1.本技术涉及机器人技术领域,特别涉及一种导航地图构建方法、导航地图构建装置、机器人及计算机可读存储介质。


背景技术:

2.在机器人领域,地图信息是一种重要的环境特征来源,如何有效地建立地图供机器人进行运动控制,避开障碍物行走是机器人领域中一项重要的研究课题。
3.相关技术中,采用激光雷达采集点云数据,以建立局部地图信息,然而,由于使用的激光雷达多数是旋转式的,需要旋转激光雷达传感器才能获取当前机器人周围的信息,容易造成数据采集和地图建立之间的延时效应,降低地图建立的实时性,并且,采集的点云数据是局限在某一高度平面上的点云数据,点云数据信息有限而导致建立起的局部地图信息有限,可能导致机器人避障失败。


技术实现要素:

4.有鉴于此,本技术提供一种导航地图构建方法、导航地图构建装置、机器人及非失易性计算机可读存储介质。
5.本技术实施方式的导航地图构建方法,包括:
6.获取机器人在预定区域内沿预定路径行驶采集的多帧三维点云数据和位姿数据;
7.根据初始帧位姿数据建立地图坐标系,所述初始帧位姿数据为所述机器人在起始位置的位姿数据;
8.依次将每一帧所述三维点云数据和对应的位姿数据映射至所述地图坐标系,以生成所述预定区域的导航地图。
9.在某些实施方式中,在所述将每一帧所述三维点云数据和对应的位姿数据依次映射至所述地图坐标系生成所述预定驱动的导航地图之前,所述导航地图构建方法还包括:
10.对齐所述位姿数据和所述三维点云数据的时间戳。
11.在某些实施方式中,所述根据初始帧位姿数据建立地图坐标系,所述初始帧位姿数据为所述机器人在起始位置的位姿数据,包括:
12.将所述机器人的位置中心设置为坐标原点;
13.将所述机器人的行进方向设置为第一坐标轴;
14.将与所述机器人行进方向垂直的方向设置为第二坐标轴;
15.根据所述坐标原点、所述第一坐标轴和所述第二坐标轴构建所述地图坐标系。
16.在某些实施方式中,所述依次将每一帧所述三维点云数据和对应的位姿数据映射至所述地图坐标系,以生成所述预定区域的导航地图,包括:
17.在所述地图坐标系中构建预设分辨率的栅格平面;
18.根据预设规则将当前帧的所述三维点云数据映射在所述栅格平面以得到当前帧二维数据;
19.计算当前帧的所述二维数据和所述机器人的位姿数据之间的索引序列对;
20.根据所述索引序列对确定当前帧的障碍物位置和空闲位置;
21.根据所述障碍物位置和所述空闲位置构建所述导航地图。
22.在某些实施方式中,所述根据预设规则将当前帧的所述三维点云数据映射在所述栅格平面以得到当前帧二维数据,包括:
23.确定所述栅格平面内每个栅格在映射方向上对应的点云数量;
24.在所述点云数量大于数量阈值的情况下,标记对应的所述栅格以生成所述当前帧二维数据。
25.在某些实施方式中,所述根据当前帧的所述二维数据和所述位姿数据计算当前帧的障碍物位置和空闲位置,包括:
26.通过直线计算法计算当前帧的所述二维数据和所述机器人的位姿数据之间的索引序列对以确定所述空闲位置和所述障碍物位置。
27.在某些实施方式中,根据所述障碍物和所述空闲位置构建所述导航地图,包括:
28.构建预定大小的初始化地图;
29.根据所述障碍物和所述空闲位置对所述初始化地图更新以得到所述导航地图。
30.本技术实施方式的导航地图构建装置,包括:
31.获取模块,用于获取机器人在预定区域内沿预定路径行驶采集的多帧三维点云数据和位姿数据;
32.构建模块,用于根据初始帧位姿数据建立地图坐标系,所述初始帧位姿数据为所述机器人在起始位置的位姿数据;
33.生成模块,用于依次将每一帧所述三维点云数据和对应的位姿数据映射至所述地图坐标系,以生成所述预定区域的导航地图。
34.本技术实施方式的机器人,包括处理器和存储器;所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行上述的导航地图构建方法。
35.本技术实施方式的非易失性计算机可读存储介质,包括计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行上述所述的导航地图构建方法。
36.本技术实施方式的导航地图构建方法、装置、机器人及可读存储介质中,通过获取到机器人在预定区域内行驶的多帧三维点云数据以及位姿数据,并以起始位姿数据建立地图坐标系,从而根据三维点云数据和位姿数据在地图坐标系中构建导航地图,如此,由于采集到的点云数据是三维的,数据信息更加丰富,构建出的导航地图信息也会更加丰富,同时,能够提升数据采集与建图的实时性,有利于提高机器人导航避障的准确性。
37.本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
38.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
39.图1是本技术某些实施方式的导航地图构建方法的流程示意图;
40.图2是本技术某些实施方式的导航地图构建装置的模块示意图;
41.图3-4是本技术某些实施方式的导航地图构建方法的流程示意图;
42.图5是本技术某些实施方式的导航地图构建方法的场景示意图;
43.图6是本技术某些实施方式的导航地图构建方法的流程示意图;
44.图7是本技术某些实施方式的二维数据的场景示意图;
45.图8-10是本技术某些实施方式的导航地图构建方法的流程示意图;
46.图11-13是本技术某些实施方式的导航地图构建方法的场景示意图。
具体实施方式
47.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
48.当前,随着消费需求的个性化以及新技术的突破成熟,带来了智能家居,智慧物流等行业的不断发展,同时移动机器人的市场也日趋扩大。在机器人领域,地图信息是一种重要的环境特征来源,如何有效地建立地图供机器人进行运动控制,避开障碍物行走是机器人领域中一项重要的研究课题。是否可以有效地建立正确的导航地图供机器人使用是保证机器人避开障碍物行走的必要条件并且是不可缺少的部分。因此,地图建立是机器人技术领域中最基础的技术分支。
49.在目前的机器人导航地图建立方法中,通用的技术方案是采用激光雷达作为点云数据的采集传感器,并且所采集的点云数据是局限在某一高度平面上的点云数据,因此,这种点云采集方式所获取的信息量有限,单次建立的局部地图信息也是有限的。局部地图信息有限对于机器人的导航控制会产生不利的影响,如某地实际场景中本身是存在障碍物的,但由于此刻传感器采集的点云数据信息有限而导致建立起的局部地图信息有限,在局部地图上没有对应于实际场景中障碍物的信息,此时就有可能导致机器人避障失败。并且,由于采用激光雷达传感器采集到的点云数据是距离式的数据,即每个数据表示的是当前机器人距离某个点(障碍物的)距离,这个距离只是表征在同一高度平面上障碍物的距离,不能表征有高度变化的障碍点的距离,因此,建立的地图可能存在障碍物点不全。再有,由于使用的激光雷达传感器多数是旋转式的,因此需要旋转激光雷达传感器才能获取当前机器人周围的信息,这在数据采集上是需要一定的时间消耗,会造成数据采集和地图建立之间的延时效应,降低地图建立的实时性。
50.有鉴于此,请参阅图1,本技术提供一种导航地图构建方法,包括步骤:
51.01,获取机器人在预定区域内沿预定路径行驶采集的多帧三维点云数据和位姿数据;
52.02,根据初始帧位姿数据建立地图坐标系,初始帧位姿数据为机器人在起始位置的位姿数据;
53.03,依次将每一帧三维点云数据和对应的位姿数据映射至地图坐标系,以生成预定区域的导航地图。
54.请参阅图2,本技术实施方式提供了一种导航地图构建装置100。导航地图构建装置100包括获取模块110、构建模块120、生成模块130。
55.其中,步骤01可以由获取模块110实现,步骤02可以由构建模块120实现,步骤03可以由生成模块130实现。
56.或者说,获取模块110可以用于获取机器人在预定区域内沿预定路径行驶采集的多帧三维点云数据和位姿数据;构建模块120可以用于根据初始帧位姿数据建立地图坐标系,初始帧位姿数据为机器人在起始位置的位姿数据。生成模块130可以用于依次将每一帧三维点云数据和对应的位姿数据映射至地图坐标系,以生成预定区域的导航地图。
57.本技术还提供了一种机器人,包括处理器和存储器,存储器存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现上述导航地图构建方法,也即是,处理器用于获取机器人在预定区域内沿预定路径行驶采集的多帧三维点云数据和位姿数据,并根据初始帧位姿数据建立地图坐标系,初始帧位姿数据为机器人在起始位置的位姿数据,以及依次将每一帧三维点云数据和对应的位姿数据映射至地图坐标系,以生成预定区域的导航地图。
58.本技术的导航地图构建方法、导航地图构建装置和机器人中,通过获取到机器人在预定区域内行驶的多帧三维点云数据以及位姿数据,并以起始位姿数据建立地图坐标系,从而根据三维点云数据和位姿数据在地图坐标系中构建导航地图,如此,由于采集到的点云数据是三维的,数据信息更加丰富,构建出的导航地图信息也会更加丰富,同时,能够提升数据采集与建图的实时性,有利于提高机器人导航避障的准确性。
59.在一些实施方式中,机器人可以包括但不限于玩具机器人、扫地机器人、多足机器人(例如,双足机器人、四足机器人等)。例如,本实施方式可以以机器人是扫地机器人为例进行说明,也即是说,导航地图构建方法和导航地图构建装置100应用于但不限于扫地机器人。导航地图构建装置可以是预安装于扫地机器人的硬件或软件,并在扫地机器人上启动运行时可以执行导航地图构建方法。例如,导航地图构建装置100可以是扫地机器人的底层软件代码段或者说是操作系统的一部分。如此,当扫地机器人可以根据摄像头采集的图像数据生成目标行驶空间并沿着目标行驶空间行驶。
60.在一些实施方式中,导航地图构建装置100可以是机器人的一部分。或者说,机器人包括导航地图构建装置100。
61.在一些实施方式中,导航地图构建装置100可以是一定方式组装以具有前述功能的分立元件、或者是以集成电路形式存在具有前述功能的芯片、又或者是在计算机上运行时使得计算机具有前述功能的计算机软件代码段。
62.在一些实施方式中,作为硬件,导航地图构建装置100可以是独立或者作为额外增加的外围元件加装到机器人。导航地图构建装置100也可以集成到机器人上,例如,导航地图构建装置100是机器人的一部分时,导航地图构建装置100可以集成到处理器上。
63.需要说明的是,机器人还包括有定位系统和飞行时间(time of flight,tof)传感器,其中,tof传感器可以为tof面阵式传感器,并且可安装于机器人的行进方向。定位系统可实时记录机器人的位姿数据,fof传感器用于采集三维点云数据。
64.需要说明的是,tof传感器能够发出经调制的近红外光,遇物体后反射,tof传感器通过计算光线发射和反射时间差或相位差,来换算被拍摄景物的距离,就能将物体的三维轮廓以点云数据的方式呈现。
65.预定路径是指机器人预先设定好的规划路线,机器人在构建预定区域的导航地图
的过程中,机器人在沿着预定路径移动的同时,tof传感器和定位系统能够启动工作。使得tof传感器能够随着机器人的移动而扫描到关于预定区域的多帧三维点云数据,定位系统也能够记录到机器人的移动过程中的多帧位姿数据。
66.初始帧位姿数据是指机器人沿着预定路径移动时起始位置的位姿数据,或者说,是机器人沿着预定路径移动时定位系统第一次记录到的位姿数据。
67.地图坐标系为二维坐标系,也即是,根据初始帧的位姿数据建立二维地图坐标系,其中,机器人所在的位置可以为坐标原点。可以理解地,导航地图为在地图坐标系下根据每一帧的三维点云数据和对应的位姿数据生成,因此,导航地图为二维导航地图。导航地图包括障碍区域和空闲区域,其中,障碍区域是指对应的区域存在障碍物。空闲区域是指该区域可以正常通行,如此,后续机器人可根据导航地图进行导航。
68.请参阅图3,在某些实施方式中,在02之前,导航地图构建方法还包括:
69.04,对齐位姿数据和三维点云数据的时间戳。
70.请进一步地结合图2,在某些实施方式中,导航地图构建装置100还可包括有预处理模块140,04可以由预处理模块140实现。或者说,预处理模块140可以用于对齐位姿数据和三维点云数据的时间戳。
71.在某些实施方式中,处理器可以用于对齐位姿数据和三维点云数据的时间戳。
72.可以理解地,由于位姿数据和三维点云数据分别是由定位系统和tof传感器得到的,因此,定位系统记录的位姿数据与tof传感器记录的三维点云数据不一定是同一个时间戳的,需要对三维点云数据与位姿数据进行时间戳对齐同步。
73.具体地,对齐时间戳可采用查表的方式实现,即,将当前帧三维点云数据的时间戳在位姿数据的时间戳序列中进行最近查找,确定时间戳序列中与当前帧三维点云数据的时间戳最接近的时间戳,即将当前帧三维点云数据的时间戳与该位姿数据的时间戳对齐。
74.请参阅图4,在某些实施方式中,在某些实施方式中,步骤02包括子步骤:
75.021,将机器人的位置中心设置为坐标原点;
76.022,将机器人的行进方向设置为第一坐标轴;
77.023,将与机器人行进方向垂直的方向设置为第二坐标轴;
78.024,根据坐标原点、第一坐标轴和第二坐标轴构建地图坐标系。
79.请进一步地结合图2,在某些实施方式中,021-024可以由构建模块120实现。或者说,构建模块120可以用于将机器人的位置中心设置为坐标原点,并将机器人的行进方向设置为第一坐标轴;以及将与机器人行进方向垂直的方向设置为第二坐标轴,再根据坐标原点、第一坐标轴和第二坐标轴构建地图坐标系。
80.在某些实施方式中,处理器可以用于将机器人的位置中心设置为坐标原点,并将机器人的行进方向设置为第一坐标轴,并将与机器人行进方向垂直的方向设置为第二坐标轴,最后再根据坐标原点、第一坐标轴和第二坐标轴构建地图坐标系。
81.在本实施方式中,第一坐标轴可以为x轴,第二坐标轴可以为y轴。
82.例如,请结合图5,在一些示例中,以机器人的移动过程中的起始位置的中心设置为坐标原点o,以机器人的正前方(即进行方向)为x轴,以机器人的左前方为y轴,如此,构建得到二维地图坐标系xoy。
83.请参阅图6,在某些实施方式中,步骤03包括子步骤:
84.031,在地图坐标系中构建预设分辨率的栅格平面;
85.032,根据预设规则将当前帧的三维点云数据映射在栅格平面以得到当前帧二维数据;
86.033,根据当前帧的二维数据和位姿数据计算当前帧的障碍物位置和空闲位置;
87.034,根据障碍物位置和空闲位置构建导航地图。
88.请进一步地结合图2,在某些实施方式中,子步骤031-034可以由生成模块130完成。或者说,生成模块130可以用于在地图坐标系中构建预设分辨率的栅格平面,并根据预设规则将当前帧的三维点云数据映射在栅格平面以得到当前帧二维数据,根据当前帧的二维数据和位姿数据计算当前帧的障碍物位置和空闲位置,根据障碍物位置和空闲位置构建导航地图。
89.在某些实施方式中,处理器可以用于在地图坐标系中构建预设分辨率的栅格平面,并根据预设规则将当前帧的三维点云数据映射在栅格平面以得到当前帧二维数据,根据当前帧的二维数据和位姿数据计算当前帧的障碍物位置和空闲位置,根据障碍物位置和空闲位置构建导航地图。
90.需要说明的是,分辨率是指栅格平面中每个栅格的大小,预设分辨率则是预先设置好的每个栅格的大小。栅格平面的面积大小是固定的,将三维点云数据以预设分辨率生成的多栅格地图中,若预设分辨率越大,则栅格地图中的栅格越少。例如,栅格平面的为1m,若栅格在的分辨率为0.05m,则栅格地图包括20个栅格,若栅格在的分辨率为0.1,则栅格地图包括10个栅格。
91.请结合图7,栅格平面可以以机器人的当前位置为中心建立。当前帧三维点云数据的点云全部可落入栅格平面内的各个栅格内,从而得到二维数据。
92.例如,栅格平面由五行五列的栅格组成,其中,行方向为y方向,列方向为x方向。若预设分辨率为0.2m,则三维点云数据中点云的坐标在x方向小于等于0.2的点都位于同一栅格内。
93.请参阅图8,在某些实施方式中,子步骤032包括:
94.0321,确定栅格平面内每个栅格在映射方向上对应的点云数量;
95.0322,在点云数量大于数量阈值的情况下,标记对应的栅格以生成当前帧二维数据。
96.请进一步结合图2,在某些实施方式中,子步骤0321和0322可以由生成模块130实现,或者说,生成模块130可以用于确定栅格平面内每个栅格在映射方向上对应的点云数量,并在点云数量大于数量阈值的情况下,标记对应的栅格以生成当前帧二维数据。
97.在某些实施方式中,处理器可以用于确定栅格平面内每个栅格在映射方向上对应的点云数量,并在点云数量大于数量阈值的情况下,标记对应的栅格以生成当前帧二维数据。
98.请结合图7,统计每个栅格中,可以落入该栅格内的三维点云数据的点云的数量。若栅格对应的三维点云数据的点云数量大于数量阈值时,将标记栅格,以表示该栅格区域存在点云数据,若栅格对应的三维点云数据的点云数量小于数量阈值时,则认为该栅格区域不存在三维点云数据。
99.可以理解地,在栅格区域内,当前帧的三维点云数的点云数量越多,则说明栅格区
域存在障碍物,因此需要标记,而在栅格区域内,当前帧的三维点云数的点云数量很少甚至没有,则说明栅格区域未扫描到障碍物,即处于空闲区域。如此,可以根据生成的当前帧二维数据直观的确定障碍物位置。
100.请参阅图9,在某些实施方式中,子步骤033包括:
101.0331,通过直线计算法计算当前帧的二维数据和机器人的位姿数据之间的索引序列对以确定空闲位置和障碍物位置。
102.请进一步结合图2,在某些实施方式中,子步骤0331可以由生成模块130实现,或者说,生成模块130可以用于通过直线计算法计算当前帧的二维数据和机器人的位姿数据之间的索引序列对以确定空闲位置和障碍物位置。
103.在某些实施方式中,处理器可以用于通过直线计算法计算当前帧的二维数据和机器人的位姿数据之间的索引序列对以确定空闲位置和障碍物位置。
104.需要说明的是,直线计算法可以采用bresenham算法,bresenham算法是计算机图形学中为了“由像素构成”的这个特性而设计出来的算法,使得在求直线各点的过程中全部以整数来运算,因而大幅度提升计算速度。
105.具体地,根据机器人的位姿数据确定机器人的位置,并作为起始点,并以二维数据中每个标记栅格作为终点,采用bresenham算法,计算出由起始点与终点确定的直线上的索引是整数的索引序列对,则索引序列对决定的位置就表示机器人所在的位置和终点之间的空闲位置(不不存在障碍物),也即是,根据bresenham算法,得到的索引序列对表示机器人所在位置和终点(标记栅格)之间的空闲位置。如此,可以确定空闲位置,从而后续可以根据当前帧的空闲位置和障碍物位置构建当前帧的局部地图。
106.请参阅图10,在某些实施方式中,子步骤034包括:
107.0341,构建预定大小的初始化地图;
108.0342,根据障碍物位置和空闲位置对初始化地图更新以得到导航地图。
109.请进一步结合图2,在某些实施方式中,子步骤0341和0342可以由生成模块130实现,或者说,生成模块130可以用于构建预定大小的初始化地图,并根据障碍物和空闲位置对初始化地图更新以得到导航地图。
110.在某些实施方式中,处理器可以用于构建预定大小的初始化地图,并根据所述障碍物和所述空闲位置对所述初始化地图更新以得到所述导航地图。
111.请结合图11至图13,具体地,构建包括m*n个像素的初始化地图,其中,每个像素点的初始值相等,例如,初始值可以设为80。再根据当前帧的空闲位置和障碍物位置对对应像素点的初始值进行增减,例如,若某个像素点对应为障碍物位置,像素值在原有的基础上进行递减,如每次减少5,若减少到5就不用再减,保持此时的值不变即可。若某个像素点对应为空闲位置,则像素值的基础上递增,比如每次递增10,当某个像素点递增到一定值时,比如200就不用在递增保持此时的值不变即可,如此,按照这样的规则对初始化地图进行更新,得到代表有障碍点和无障碍物点的更新地图。
112.进一步地,遍历每个像素点,对每个像素的值做判断,如当某个像素点的值小于第一阈值(如20),认为这个像素点确实是代表障碍物点,将此像素点更新为0;当某个像素点的之大于第二阈值(如130),认为这个像素点确实代表无障碍物点,将此像素点更新为255,当某个像素点介于第一阈值和第二阈值之间,认为这个像素点是保持初始状态,也即是,将
该像素点的值设置为初始值(如80),最终得到导航地图。
113.本技术实施方式还提供了一种非易失性计算机可读存储介质,可读存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器执行上述的导航地图构建方法。
114.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,dvd))、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
115.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
116.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
117.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
118.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1