多机器人建图方法、系统、计算机存储介质及电子设备与流程

文档序号:21369432发布日期:2020-07-04 04:45阅读:252来源:国知局
多机器人建图方法、系统、计算机存储介质及电子设备与流程

本发明涉及机器人建图技术领域,更具体地,涉及一种多机器人建图方法、多机器人建图系统、计算机存储介质及电子设备。



背景技术:

目前,在对某一环境进行建图时,通常是由单机器人建图,其具体操作是:通过单个机器人在环境中移动,并依据机器人运动信息和传感器获取的环境信息来构建环境地图。

现有的技术方案在应用于小范围环境建图时比较适用,但是在需要对大场景进行建图时,单机器人在大场景下建图效率低,耗时大,成本比较高,难以推广使用。



技术实现要素:

有鉴于此,本发明提供一种多机器人建图方法、多机器人建图系统、计算机存储介质及电子设备,可以有效提高大场景下建图效率。

为解决上述技术问题,一方面,本发明提供一种多机器人建图方法,包括以下步骤:s1、由多个机器人中的一个机器人构建一个子地图作为初始地图上传至主机;s2、主机将所述初始地图下发至每个所述机器人;s3、每个所述机器人分别在所述初始地图内运动,直至获得各自在所述初始地图中的位姿;s4、每个所述机器人分别以当前在所述初始地图中的位姿作为下一个子地图的初始位姿构建新的子地图,并发送至主机;s5、主机将来自各个机器人的新的子地图进行拼接,同时进行闭环检测;s6、调整各个新的子地图的位姿,使所有新的子地图之前的位姿误差和匹配误差之和最小;s7、将调整后的多个新的子地图按位姿关系映射至同一张地图中,得到新的地图。

根据本发明实施例的多机器人建图方法,通过多机器人并行建图,可以大幅提高大场景下的建图效率;一个机器人在生成初始地图后,先进行定位,再扩展地图,保证了地图的一致性;各个机器人基于运动信息和激光扫描数据生成子地图后发送至主机,而非直接将运动信息和点云数据发送至主机,很大程度上降低了通信压力;并且闭环检测保证了大场景地图不会发生漂移,保证了建图效果的可靠性。

根据本发明的一些实施例,步骤s1包括:

s11、选择多个机器人中的一个为初始机器人,记录其初始位置为x0;

s12、控制所述初始机器人在预定范围内活动,使所述初始机器人能够扫描到预定范围内周围环境的轮廓信息;

s13、记录所述初始机器人在运动过程中的机器人位姿x1:t和激光点云数据z1:t,则有目标函数如下:

式中ω0为初始位姿协方差,g(ut,xt-1)为机器人运动模型,ut为控制量,rt为运动噪声协方差,h(mt,xt)为观测模型,mt为地图特征,qt为观测噪声协方差;

s14、调整各个时刻下所述初始机器人的位姿x1:t,使目标函数j最小化;

s15、以优化后的机器人位姿和对应的激光点云数据生成一个局部地图;

s16、将该局部地图记为(x0,map0),作为初始地图上传至主机。

根据本发明的一些实施例,在步骤s13中,根据机器人运动模型记录所述初始机器人在运动过程中的机器人位姿和激光点云数据。

根据本发明的一些实施例,步骤s3包括:

s31、在所述初始地图的所有自由区域进行随机采样,生成表示机器人位姿的粒子集;

s32、根据机器人运动模型更新粒子状态;

s33、根据每一个粒子的位姿,将当前激光点云数据映射至全局地图,依据匹配程度更新粒子权重;

s34、根据粒子权重对粒子进行重采样;

s35、重复步骤s32-s34直至粒子收敛,对收敛的粒子求加权平均,获取各个机器人在所述初始地图中的位姿,记为x0i,i为每个机器人对应的id。

根据本发明的一些实施例,步骤s4包括:

s41、控制各个机器人分别扫描周围环境的轮廓信息,每运动预定距离按照步骤s1生成一个子地图(xti,mapti),并以当前位姿作为下一个子地图的初始位姿;

s42、继续构建子地图,直至扫描完所需构建地图的环境。

第二方面,本发明实施例提供一种多机器人建图系统,包括:主机;至少两个机器人,每个所述机器人分别与所述主机通过上述实施例所述的方法进行通信。

根据本发明的一些实施例,每个所述机器人分别能够移动,并设有感知环境的传感器。

根据本发明的一些实施例,所述传感器为激光雷达传感器。

第三方面,本发明实施例提供一种计算机存储介质,包括一条或多条计算机指令,所述一条或多条计算机指令在执行时实现如上述实施例所述的方法。

根据本发明第四方面实施例的电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令;所述处理器用于调用并执行所述一条或多条计算机指令,从而实现如上述任一实施例所述的方法。

附图说明

图1为根据本发明实施例的多机器人建图方法的流程图;

图2为根据本发明实施例的多机器人建图系统的示意图;

图3为本发明实施例的电子设备的示意图。

附图标记:

多机器人建图系统100;主机10;机器人20;

电子设备300;

存储器310;操作系统311;应用程序312;

处理器320;网络接口330;输入设备340;硬盘350;显示设备360。

具体实施方式

下面将结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

下面首先结合附图具体描述根据本发明实施例的多机器人建图方法。

如图1所示,根据本发明实施例的多机器人建图方法包括以下步骤:

s1、由多个机器人中的一个机器人构建一个子地图作为初始地图上传至主机。

s2、主机将所述初始地图下发至每个所述机器人。

s3、每个所述机器人分别在所述初始地图内运动,直至获得各自在所述初始地图中的位姿。

s4、每个所述机器人分别以当前在所述初始地图中的位姿作为下一个子地图的初始位姿构建新的子地图,并发送至主机。

s5、主机将来自各个机器人的新的子地图进行拼接,同时进行闭环检测。

s6、调整各个新的子地图的位姿,使所有新的子地图之前的位姿误差和匹配误差之和最小。

s7、将调整后的多个新的子地图按位姿关系映射至同一张地图中,得到新的地图。

由此,根据本发明实施例的多机器人建图方法,通过多机器人并行建图,可以大幅提高大场景下的建图效率;一个机器人在生成初始地图后,先进行定位,再扩展地图,保证了地图的一致性;各个机器人基于运动信息和激光扫描数据生成子地图后发送至主机,而非直接将运动信息和点云数据发送至主机,很大程度上降低了通信压力;并且闭环检测保证了大场景地图不会发生漂移,保证了建图效果的可靠性。

根据本发明的一个实施例,步骤s1包括:

s11、选择多个机器人中的一个为初始机器人,记录其初始位置为x0;

s12、控制所述初始机器人在预定范围内活动,使所述初始机器人能够扫描到预定范围内周围环境的轮廓信息;

s13、记录所述初始机器人在运动过程中的机器人位姿x1:t和激光点云数据z1:t,则有目标函数如下:

式中ω0为初始位姿协方差,g(ut,xt-1)为机器人运动模型,ut为控制量,rt为运动噪声协方差,h(mt,xt)为观测模型,mt为地图特征,qt为观测噪声协方差;

s14、调整各个时刻下所述初始机器人的位姿x1:t,使目标函数j最小化;

s15、以优化后的机器人位姿和对应的激光点云数据生成一个局部地图;

s16、将该局部地图记为(x0,map0),作为初始地图上传至主机。

其中,在步骤s13中,根据机器人运动模型记录所述初始机器人在运动过程中的机器人位姿和激光点云数据。

由此,该方法可以保证初始地图的真实性。

可选地,在本发明的一些具体方式中,步骤s3包括:

s31、在所述初始地图的所有自由区域进行随机采样,生成表示机器人位姿的粒子集;

s32、根据机器人运动模型更新粒子状态;

s33、根据每一个粒子的位姿,将当前激光点云数据映射至全局地图,依据匹配程度更新粒子权重;

s34、根据粒子权重对粒子进行重采样;

s35、重复步骤s32-s34直至粒子收敛,对收敛的粒子求加权平均,获取各个机器人在所述初始地图中的位姿,记为x0i,i为每个机器人对应的id。

进一步地,步骤s4包括:

s41、控制各个机器人分别扫描周围环境的轮廓信息,每运动预定距离按照步骤s1生成一个子地图(xti,mapti),并以当前位姿作为下一个子地图的初始位姿;

s42、继续构建子地图,直至扫描完所需构建地图的环境。

由此,一个机器人在生成初始地图后先定位,然后再由其他多个机器人扩展地图,保证了地图的一致性。

根据本发明实施例的多机器人建图系统100包括主机10和至少两个机器人20。其中,每个机器人20分别与主机10通过上述实施例所述的方法进行通信。其中,每个机器人20分别能够移动,并设有感知环境的传感器。可选地,所述传感器为激光雷达传感器。

由于根据本发明上述实施例的多机器人建图方法具有上述技术效果,因此,应用该方法实现连接的主机10与机器人20构成的多机器人建图系统100也具有相应的技术效果,即通过多机器人并行建图,可以大幅提高大场景下的建图效率;一个机器人在生成初始地图后,先进行定位,再扩展地图,保证了地图的一致性;各个机器人基于运动信息和激光扫描数据生成子地图后发送至主机,而非直接将运动信息和点云数据发送至主机,很大程度上降低了通信压力;并且闭环检测保证了大场景地图不会发生漂移,保证了建图效果的可靠性。

此外,本发明还提供一种计算机存储介质,所述计算机存储介质包括一条或多条计算机指令,所述一条或多条计算机指令在执行时实现上述任一所述的多机器人建图方法。

也就是说,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器运行时,使得所述处理器执行上述任一所述的多机器人建图方法。

如图3所示,本发明实施例提供了一种电子设备300,包括存储器310和处理器320,所述存储器310用于存储一条或多条计算机指令,所述处理器320用于调用并执行所述一条或多条计算机指令,从而实现上述任一所述的方法。

也就是说,电子设备300包括:处理器320和存储器310,在所述存储器310中存储有计算机程序指令,其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器320执行上述任一所述的方法。

进一步地,如图3所示,电子设备300还包括网络接口330、输入设备340、硬盘350、和显示设备360。

上述各个接口和设备之间可以通过总线架构互连。总线架构可以是可以包括任意数量的互联的总线和桥。具体由处理器320代表的一个或者多个中央处理器(cpu),以及由存储器310代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。

所述网络接口330,可以连接至网络(如因特网、局域网等),从网络中获取相关数据,并可以保存在硬盘350中。

所述输入设备340,可以接收操作人员输入的各种指令,并发送给处理器320以供执行。所述输入设备340可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。

所述显示设备360,可以将处理器320执行指令获得的结果进行显示。

所述存储器310,用于存储操作系统运行所必须的程序和数据,以及处理器320计算过程中的中间结果等数据。

可以理解,本发明实施例中的存储器310可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。本文描述的装置和方法的存储器310旨在包括但不限于这些和任意其它适合类型的存储器。

在一些实施方式中,存储器310存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统311和应用程序312。

其中,操作系统311,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序312,包含各种应用程序,例如浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序312中。

本发明上述实施例揭示的方法可以应用于处理器320中,或者由处理器320实现。处理器320可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器320中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器320可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器310,处理器320读取存储器310中的信息,结合其硬件完成上述方法的步骤。

可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(asic)、数字信号处理器dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。

对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。

具体地,处理器320还用于读取所述计算机程序,执行上述任一所述的方法。

在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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