一种机器人的建图方法及机器人与流程

文档序号:27501286发布日期:2021-11-22 16:24阅读:305来源:国知局
一种机器人的建图方法及机器人与流程
一种机器人的建图方法及机器人
【技术领域】
1.本发明涉及人工智能领域,具体而言,涉及一种机器人的建图方法及机器人。


背景技术:

2.随着计算机视觉、控制理论、人工智能、传感器技术等多项学科的高速发展,新技术在移动机器人领域的运用越来越广泛。智能化的移动机器人在工作环境中首先要解决自身在哪里、周围是什么样的、怎么去目的地这样三个问题,前两者是指机器人在工作环境中如何定位、如何建立地图,也就是同步定位和地图构建(simultaneous localization and mapping,简称为slam)过程,第三个问题这是机器人在运动过程中的路径规划与避障,即导航问题。在移动机器人相关技术研究中,导航技术属于其核心技术,也是实现智能化和自主移动的关键技术。而实现导航的前提是导航地图的建立,在现有技术中,机器人的导航地图的建立,一般是将通过雷达采集的点云数据映射到整张地图上,即将点云数据通过坐标信息的坐标变换,映射到整张体态的地图坐的标系上,具体的,判断当前是否存在一张已经初始化的栅格地图,若没有,则初始化当前位置坐标为(0,0,0),并判断是否存在已初始化的栅格地图(将雷达数据通过坐标信息坐标变换到地图坐标系上),其中,栅格地图由分辨率为0.05米的多个正方形组成,若不存在初始化的栅格地图,则初始化栅格地图;若存在初始化的栅格地图,则获取当前点云数据的定位信息p,遍历雷达点云数据,通过定位信息p将点云数据的n个点的坐标变换到地图上,找到该点云映射到分辨率为0.05米的分辨率地图上对应的栅格坐标,并对该栅格进行标记,该标记可以描述为一个栅格上被点云打映射了多少次,打到映射的次数越多,该栅格的概率越大。如果有一帧的定位信息不准确,那么用该帧定位信息将点云映射到栅格地图上就会发生错误,导致构建的栅格地图发生叠图,对后续的点云和地图匹配的定位造成影响,会出现一直定位出错。
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.根据所述当前关键帧图像的点云数据、以及所述当前地图块中所述当前关键帧图像之前所有关键帧图像的点云数据进行icp匹配,得到位置误差;
35.对所述位置误差进行纠正,得到预定数量关键帧图像的每个关键帧图像中机器人
的优化位置信息;
36.根据所述每个关键帧图像中机器人的优化位置信息将所述每个关键帧图像的点云数据映射到所述当前地图块中,得到所述优化后的地图块。
37.可选地,在将所述当前地图块映射到全局地图上,得到所述机器人的导航地图之后,所述方法还包括:
38.获取所述机器人在所述导航地图上的定位信息,并获取所述机器人在所述导航地图上已完成的行动轨迹;
39.根据所述定位信息、所述行动轨迹与所述导航地图对所述机器人进行控制。
40.根据发明本发明实施例的另一方面,还提供了一种机器人,包括:
41.第一获取模块,用于获取机器人的关键帧图像,并获取所述关键帧图像的点云数据;
42.第二获取模块,用于获取所述关键帧图像所对应的所述机器人的位置信息;
43.第一映射模块,用于根据所述位置信息将所述关键帧图像的点云数据映射到当前地图块中;
44.第二映射模块,用于将所述当前地图块映射到全局地图上,得到所述机器人的导航地图。
45.可选地,所述第一获取模块,还用于分别获取所述机器人以预设的时间周期或以预设的距离间隔采集的多个关键帧图像,并分别获取所述多个关键帧图像的点云数据;
46.所述第二获取模块,还用于根据所述点云数据确定每个关键帧图像所对应的所述机器人的位置信息;
47.所述第一映射模块,还用于根据每个关键帧图像所对应的所述机器人的位置信息,将所述多个关键帧图像的点云数据映射到多个地图块中;
48.所述第二映射模块,还用于将所述多个地图块映射到所述全局地图上,得到所述机器人的导航地图。
49.可选地,所述第二映射模块,还用于
50.对所述多个地图块中的每个地图块,执行以下步骤:
51.当所述每个地图块中关键帧数量饱和时,确定所述每个地图块中最后一帧关键帧图像中所述机器人的位置信息为所述每个地图块的位置信息。
52.可选地,所述第一映射模块包括:
53.第一转换子模块,用于根据雷达坐标系与机器坐标系的对应关系将所述关键帧图像的点云数据转换到所述机器坐标系中,得到所述关键帧图像的点云数据的机器坐标;
54.第二转换子模块,用于根据雷达坐标系与机器坐标系的对应关系将所述机器坐标转换到世界坐标系中,得到所述关键帧图像的点云数据的局部坐标;
55.映射子模块,用于根据所述关键帧图像的点云数据的局部坐标将所述关键帧图像映射到所述前地图块中。
56.可选地,所述第二映射模块,还用于
57.根据所述当前地图块的每个关键帧图像中所述机器人的位置信息将所述每个关键帧图像的点云数据的局部坐标转换到所述全局地图的坐标系中。
58.可选地,所述装置还包括:
59.第三获取模块,用于获取所述地图块状态信息;
60.第一确定模块,用于根据所述地图块状态信息确定是否为存在已初始化的所述当前地图块;
61.建立模块,用于若不存在,则建立所述当前地图块。
62.第二确定模块,用于若存在,根据预先设置的地图块可容纳的关键帧数量阈值确定所述当前地图块中的关键帧数量未饱和。
63.可选地,所述装置还包括:
64.优化模块,用于若所述当前地图块中的关键帧数量已饱和,对所述当前地图块内每个关键帧图像中所述机器人的位置信息和所述全局地图的地图信息进行联合优化,得到优化后的地图块;
65.设置模块,用于将所述优化后的地图块映射到所述全局地图中,并将所述地图块状态信息设置为未初始化。
66.可选地,所述优化模块包括:
67.匹配子模块,用于根据所述当前关键帧图像的点云数据、以及所述当前地图块中所述当前关键帧图像之前所有关键帧图像的点云数据进行icp匹配,得到位置误差;
68.纠正子模块,用于对所述位置误差进行纠正,得到预定数量关键帧图像的每个关键帧图像中机器人的优化位置信息;
69.第二映射子模块,用于根据所述每个关键帧图像中机器人的优化位置信息将所述每个关键帧图像的点云数据映射到所述当前地图块中,得到所述优化后的地图块。
70.可选地,所述装置还包括:
71.第四获取模块,用于获取所述机器人在所述导航地图上的定位信息,并获取所述机器人在所述导航地图上已完成的行动轨迹;
72.控制模块,用于根据所述定位信息、所述行动轨迹与所述导航地图对所述机器人进行控制。
73.本发明的目的是通过以下技术方案实现:获取机器人的关键帧图像,并获取该关键帧图像的点云数据;获取关键帧图像中该机器人的位置信息;根据该位置信息将该关键帧图像的点云数据映射到当前地图块中;将该当前地图块映射到全局地图上,得到该机器人的导航地图,解决了相关技术中如果有一帧图像的定位信息不准确,将点云数据映射到地图上就会发生错误,导致定位出错的问题。
74.与现有技术相比,本发明具有如下有益效果:将地图划分为多个地图块,基于多个地图块将机器人的位置信息将点云数据映射到全局地图中,提高了机器人定位的准确性。
【附图说明】
75.图1是本技术实施例的一种机器人的建图方法的移动终端的硬件结构框图;
76.图2是根据本技术实施例的机器人的建图方法的流程图;
77.图3是根据本发明实施例的基于多地图块的建图方法的流程图;
78.图4是根据本技术实施例的机器人的结构框图。
【具体实施方式】
79.下文中将参考附图并结合实施例来详细说明本技术。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
80.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
81.本技术实施例所提供的方法实施例可以在移动终端或者类似的运算装置中执行。以运行在机器人上为例,图1是本技术实施例的一种机器人的建图方法的移动终端的硬件结构框图,如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(microprocessor unit,简称是mpu)或可编程逻辑器件(programmable logic device,简称是pld)等的处理装置和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
82.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本技术实施例中的机器人的建图方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
83.传输设备106用于经由网络接收或者发送数据。上述的网络具体实例可包括机器人10的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
84.在本实施例中提供了一种运行于上述移动移动终端的机器人的建图方法,图2是根据本技术实施例的机器人的建图方法的流程图,如图2所示,该流程包括如下步骤:
85.步骤s202,获取机器人的关键帧图像,并获取所述关键帧图像的点云数据;
86.步骤s204,获取所述关键帧图像所对应的所述机器人的位置信息;
87.上述步骤s204中,点云数据是基于雷达传感器采集的,雷达传感器采集数据时的探测角度等参数信息确定后,根据点云数据在机器人坐标系的位置便可计算得到机器人的位置信息。
88.步骤s206,根据所述位置信息,将所述关键帧图像的点云数据映射到当前地图块中;
89.其中,每个地图块中包括预定数量关键帧图像的点云数据;
90.步骤s208,将所述当前地图块映射到全局地图上,得到所述机器人的导航地图。
91.通过上述步骤s202至s208,解决了相关技术中如果有一帧图像的定位信息不准确,将点云数据映射到地图上会发生错误,导致定位出错的问题。将地图划分为多个地图
块,基于多个地图块将机器人的位置信息将点云数据映射到全局地图中,机器人根据导航地图进行定位,提高了机器人定位的准确性。
92.在一可选的实施例中,分别获取所述机器人以预设的时间周期或以预设的距离间隔采集的多个关键帧图像与,并分别获取所述多个关键帧图像的点云数据;根据所述点云数据确定每个关键帧图像所对应的所述机器人的位置信息;根据每个关键帧图像所对应的所述机器人的位置信息,将所述多个关键帧图像的点云数据映射到多个地图块中,进一步的,根据雷达坐标系与机器坐标系的对应关系将所述多个关键帧图像的点云数据转换到所述机器坐标系中,得到所述多个关键帧图像的点云数据的局部坐标;根据所述多个关键帧图像的点云数据的局部坐标将所述多个关键帧图像映射到所述多个地图块中;将所述多个地图块映射到所述全局地图上,得到所述机器人的导航地图,在一实施例中,对该多个地图块中的每个地图块,执行以下步骤,其中,正在执行的地图块称为当前地图块:根据该当前每个地图块的每个关键帧图像中该机器人的位置信息将该每个关键帧图像的点云数据的局部坐标转换到该全局地图的坐标系中;在另一实施例中,对该多个地图块中的每个地图块,执行以下步骤,其中,正在执行的地图块称为当前地图块:当该当前地图块中关键帧数量饱和时,确定该当前地图块中最后一帧关键帧图像中该机器人的位置信息为该当前地图块的位置信息,其中,该当前地图块的位置信息用于对该当前地图块、以及该当前地图块的相邻地图块之间的位置关系进行优化,从而可以提高导航地图的准确性。
93.本发明实施例中,上述步骤s206具体可以包括:根据预先存储的雷达坐标系与机器坐标系的对应关系将所述关键帧图像的点云数据转换到所述机器坐标系中,得到关键帧图像的机器坐标,再根据预先存储的机器坐标系与世界坐标系的对应关系将所述关键帧图像的机器坐标转换到机器世界坐标系中,具体的,获取点云数据的雷达坐标,由于雷达坐标系与机器坐标系具有对应关系,根据该对应关系即可将点云数据的雷达坐标转换为机器坐标,再将机器坐标转换为世界坐标,得到所述关键帧图像的点云数据的局部坐标,即得到点云数据的世界坐标;根据所述关键帧图像的点云数据的局部坐标将所述关键帧图像映射到所述前地图块中,在得到点云数据的局部坐标之后,便可以基于坐标映射到当前地图块中。
94.在一可选的实施例中,上述步骤s208具体可以包括:根据所述当前地图块的每个关键帧图像中所述机器人的位置信息将所述每个关键帧图像的点云数据的局部坐标转换到所述全局地图的坐标系中,具体的,全局地图为划分为多个地图块之后,存储有每个地图块的标识信息与每个地图块在全局地图的坐标系中的坐标的对应关系,当前地图块中关键帧图像中机器人的位置信息确定之后,由于机器人的位置信息即为世界坐标系中的世界坐标,全局地图的坐标系也是世界坐标,便可以基于当前地图块中关键帧图像中机器人的位置信息将关键帧图像的点云数据的局部坐标转换到全局地图的坐标系中。
95.在一可选的实施例中,在上述步骤s206之前,获取该地图块状态信息,状态信息可以表示是否当前存在已初始化的地图快;根据该地图块状态信息确定是否为存在已初始化的该当前地图块;若不存在,则建立该当前地图块;若存在,根据预先设置的地图块可容纳的关键帧数量阈值确定该当前地图块中的关键帧数量未饱和,即在当前地图块未饱和的情况下才可以继续将关键帧的点云数据映射到当前地图块中。
96.进一步地,若该当前地图块中的关键帧数量已饱和,为了提高当前地图块中定位信息的准确性,可以对该当前地图块内每个关键帧图像中该机器人的位置信息和该全局地
图的地图信息当前地图块中的数据进行联合优化,得到优化后的地图块,具体的,根据该当前关键帧图像的点云数据、以及该当前地图块中该当前关键帧图像之前所有关键帧图像的点云数据进行icp匹配,得到位置误差;对该位置误差进行纠正,得到该预定数量关键帧图像的每个关键帧图像中机器人的优化位置信息;根据该每个关键帧图像中机器人的优化位置信息将该每个关键帧图像的点云数据映射到该当前地图块中,得到该优化后的地图块,使得当前地图块中机器人的位置信息更加准确;将该优化后的地图块映射到该全局地图中,并将该地图块状态信息设置为未初始化,以使下一次判断地图块状态信息时重新建立地图块,重复上述步骤,便可完成导航地图的建立。
97.在另一可选的实施例中,在上述步骤s208之后,获取该机器人在该导航地图上的定位信息,并获取该机器人在该导航地图上已完成的行动轨迹;根据该定位信息、该行动轨迹与该导航地图对该机器人进行控制,从而控制机器人运动。
98.本实施例基于多地图块构建地图,多地图块的构建是为了将整张地图拆分成n个子地图的集合,因为采用整张地图的话,若其中有一个pose定位出错,将该错误pose的点云映射到整张地图上后整张地图都会被污染,使得后面的地图纠正变得异常困难,但当采用多个子地图来代替整张地图时,若发现其中某些地方定位出错,只需要把相应的子地图块单独提出来进行纠正便可,不会污染整张地图,同时计算的耗时也会降低。多地图块的构建过程:当未检测到有已经初始化的地图块时,首先初始化一个子地图块,并将当前的点云数据通过机器人当前位置信息映射到该子地图块中,地图块的大小可以通过多个方式评估,其中为:地图块储存的关键帧信息大于阈值,一般关键帧数量阈值设置为20个,采用的方法是通过行使轨迹间隔来判断,每0.5米采样一个关键帧,并将该关键帧映射到其对应的子地图块中,当当前子地图块的大小大于20个时,将该地图块置为饱和状态,并重新初始化一个新的子地图块,同时将该地图块映射到完整地图上。机器人会实时获取当前的位置信息和当前完整地图信息,通过记录已经走过的轨迹和完整地图进行匹配,得出地图上机器人还未去往清扫的地方,并通过实时过去的位置和地图信息导航到该点,继续清扫,直到地图上没有未达点后完成该次清扫工作,返回充电。
99.机器人在扫地的过程中需要确切的知道机器当前的位置和未清扫的地方,定位信息则是由雷达传感器提供。将一整张概率栅格地图切分成多个地图块的组合,当一个地图块构建完成后,会对该地图块内的每个定位信息和地图信息进行联合的纠正,然后将该地图块合并入整张地图中,以此来降低其中一个定位信息不准确对整张地图的影响,同时能够提升建图的准确性。一个地图块中存在20个关键帧,由于定位误差的存在,20个关键帧的误差是逐渐累加的,联合优化其实是一个联合纠正偏差的过程。一般定位前端做法是基于马尔科夫假设,也就是说一个地图块中的20帧关键帧之间的定位信息是相互独立的,这就导致如果其中一帧的定位信息出现了偏差,那这个偏差会被带入到后面的定位中去,导致定位的误差越来越大。而联合优化则是认为一个地图块中的定位信息是相互耦合的,并不单一的受到上一次定位信息的影响,与该地图块之前所有的关键帧都相关。具体的实现过程是在该地图块中,假设当前是第n帧关键帧,它的当前推算出的位置为pn,pn由于受到前面n

1帧的影响,误差是连续叠加的,下面需要通过观测量对其进行修正,修正的方法是采用该关键帧的局部点云数据与之前n

1帧点云进行icp匹配,可以通过局部的点云定位信息对误差进行纠正,以此来完成整体的联合优化。当地图块饱和时,最后一帧关键帧的地图坐
标系则为该子地图块的位置信息,当完成优化后,只需要将该地图块通过这个位置信息映射到整张地图即可。
100.确定机器人所在的当前地图块的建图状态信息(与地图块状态信息类似);确定该当前地图块是否已创建;若该当前地图块未创建,则创建该当前地图块;其中,该确定机器人所在的当前地图块的建图状态信息包括:确定机器人所在的当前地图块的建图状态信息,其中,该建图状态信息包括可建图状态;可建图状态是由机器目前状态确定:当机器处于快速运动、倾斜、定位恢复、打滑等状态时,建图状态为关闭;当机器处于正常状态时,建图状态为开启。
101.图3是根据本发明实施例的基于多地图块的建图方法的流程图,如图3所示,包括:
102.s301,输入一帧点云数据和该点云数据的定位信息;
103.s302,判断是否存在已初始化的当前地图块(具体根据地图块状态信息确定是否为存在已初始化的当前地图块),在判断结果为否的情况下,执行步骤s303,否则执行s304;
104.s303,初始化该地图块;
105.s304,判断当前地图块是否饱和,在判断结果为否的情况下,执行步骤s305,否则执行s308;
106.s305,判断是否可以建图,在判断结果为否的情况下,执行步骤s306,否则执行s307;
107.s306,关闭建图;
108.s307,开启建图,当前地图块计数加1,加1是为了方便统计当前地图块的个数,用于分析结果和确定地图块参数的选取对优化结果的影响;
109.s308,若地图块处于饱和状态,则会对该地图块内的所有点云和定位信息进行联合优化;
110.s309,将优化后的地图块加入到整张地图中去,并将地图块状态信息设置为未初始化。
111.多地图块和可建图状态判断有利于降低地图障碍物误建,同时优化了地图显示,降低了误建导致的叠图问题。
112.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read

only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例该的方法。
113.在本实施例中还提供了一种机器人,该智能清洁设备用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
114.图4是根据本技术实施例的机器人的结构框图,如图4所示,该装置包括:
115.第一获取模块42,用于获取机器人的关键帧图像,并获取所述关键帧图像的点云
数据;
116.第二获取模块44,用于获取所述关键帧图像所对应的所述机器人的位置信息;
117.第一映射模块46,用于根据所述位置信息将所述关键帧图像的点云数据映射到当前地图块中;
118.第二映射模块48,用于将所述当前地图块映射到全局地图上,得到所述机器人的导航地图。
119.可选地,所述第一获取模块42,还用于分别获取所述机器人以预设的时间周期或以预设的距离间隔采集的多个关键帧图像,并分别获取所述多个关键帧图像的点云数据;
120.所述第二获取模块44,还用于根据所述点云数据确定每个关键帧图像所对应的所述机器人的位置信息;
121.所述第一映射模块46,还用于根据每个关键帧图像所对应的所述机器人的位置信息,将所述多个关键帧图像的点云数据映射到多个地图块中;
122.所述第二映射模块48,还用于将所述多个地图块映射到所述全局地图上,得到所述机器人的导航地图。
123.可选地,所述第二映射模块48,还用于
124.对所述多个地图块中的每个地图块,执行以下步骤:
125.当所述当前每个地图块中关键帧数量饱和时,确定所述当前每个地图块中最后一帧关键帧图像中所述机器人的位置信息为所述当前每个地图块的位置信息。
126.可选地,所述第一映射模块46包括:
127.第一转换子模块,用于根据雷达坐标系与机器坐标系的对应关系将所述关键帧图像的点云数据转换到所述机器坐标系中,得到所述关键帧图像的点云数据的机器坐标;
128.第二转换子模块,用于根据雷达坐标系与机器坐标系的对应关系将所述机器坐标转换到世界坐标系中,得到所述关键帧图像的点云数据的局部坐标;
129.映射子模块,用于根据所述关键帧图像的点云数据的局部坐标将所述关键帧图像映射到所述前地图块中。
130.可选地,所述第二映射模块48,还用于
131.根据所述当前地图块的每个关键帧图像中所述机器人的位置信息将所述每个关键帧图像的点云数据的局部坐标转换到所述全局地图的坐标系中。
132.可选地,所述装置还包括:
133.第三获取模块,用于获取所述地图块状态信息;
134.第一确定模块,用于根据所述地图块状态信息确定是否为存在已初始化的所述当前地图块;
135.建立模块,用于若不存在,则建立所述当前地图块。
136.第二确定模块,用于若存在,根据预先设置的地图块可容纳的关键帧数量阈值确定所述当前地图块中的关键帧数量未饱和。
137.可选地,所述装置还包括:
138.优化模块,用于若所述当前地图块中的关键帧数量已饱和,对所述当前地图块内每个关键帧图像中所述机器人的位置信息和所述全局地图的地图信息进行联合优化,得到优化后的地图块;
139.设置模块,用于将所述优化后的地图块映射到所述全局地图中,并将所述地图块状态信息设置为未初始化。
140.可选地,所述优化模块包括:
141.匹配子模块,用于根据所述当前关键帧图像的点云数据、以及所述当前地图块中所述当前关键帧图像之前所有关键帧图像的点云数据进行icp匹配,得到位置误差;
142.纠正子模块,用于对所述位置误差进行纠正,得到预定数量关键帧图像的每个关键帧图像中机器人的优化位置信息;
143.第二映射子模块,用于根据所述每个关键帧图像中机器人的优化位置信息将所述每个关键帧图像的点云数据映射到所述当前地图块中,得到所述优化后的地图块。
144.可选地,所述装置还包括:
145.第四获取模块,用于获取所述机器人在所述导航地图上的定位信息,并获取所述机器人在所述导航地图上已完成的行动轨迹;
146.控制模块,用于根据所述定位信息、所述行动轨迹与所述导航地图对所述机器人进行控制。
147.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
148.本技术的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
149.可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
150.s1,获取机器人的关键帧图像,并获取所述关键帧图像的点云数据;
151.s2,获取所述关键帧图像所对应的所述机器人的位置信息;
152.s3,根据所述位置信息,将所述关键帧图像的点云数据映射到当前地图块中;
153.s4,将所述当前地图块映射到全局地图上,得到所述机器人的导航地图。
154.可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器rom、随机存取存储器ram、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
155.本技术的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
156.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
157.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
158.s1,获取机器人的关键帧图像,并获取所述关键帧图像的点云数据;
159.s2,获取所述关键帧图像所对应的所述机器人的位置信息;
160.s3,根据所述位置信息,将所述关键帧图像的点云数据映射到当前地图块中;
161.s4,将所述当前地图块映射到全局地图上,得到所述机器人的导航地图。
162.可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
163.显然,本领域的技术人员应该明白,上述的本技术的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术不限制于任何特定的硬件和软件结合。
164.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1