一种激光扫描式室内地图生成和更新装置及方法与流程

文档序号:13873052阅读:366来源:国知局
一种激光扫描式室内地图生成和更新装置及方法与流程

本发明涉及室内地图建模领域,具体是一种激光扫描式室内地图生成和更新装置及方法。



背景技术:

地图创建是运动机器人领域中的一个基本问题,环境地图在运动机器人导航定位和路径规划中起到很重要的作用。要实现运动机器人的自主导航,最重要的是通过定位来获得机器人在环境中的准确位姿。根据先验地图进行运动机器人定位和自主导航得到广泛应用,但实际环境往往不能提供准确的先验地图,这给运动机器人的自主导航带来很大的问题。因此,运动机器人在未知环境中的定位和地图构建成为运动机器人研究领域的一个热点问题。目前运动机器人常用的地图表示方法有二种,一是占据网格法,用每一个网格被占据的概率值来表示环境信息,但网格地图的精确度不高。二是基于几何的表示方法,利用线段、弧线来表示环境信息。几何地图信息存储量小,可以直接应用在运动机器人的导航和路径规划上。但是,现有利用红外和声呐等传感器生成的几何地图精度小,生成几何地图的耗时长。激光雷达和红外、声纳等传感器相比,获取数据速度快而精确。因此,利用激光雷达数据做出的地图具有很高的精确度。



技术实现要素:

本发明根据现有技术的不足提供一种激光扫描式室内地图生成和更新装置及方法,充分利用激光雷达获取数据速度快而精确的特点,能够快速而精确的进行室内地图生成和更新。

本发明的技术方案:一种激光扫描式室内地图生成和更新装置,包括运动机器人以及安装在运动机器人上的激光雷达,所述激光雷达安装在运动机器人的顶部,所述运动机器人内安装有编码器及中央处理器芯片,激光雷达与中央处理器芯片相连接,所述运动机器人上还安装有信号天线,运动机器人通过信号天线与主控计算机通信连接,所述激光雷达用以对室内环境进行扫描并将扫描得到的离散点数据信息传输到中央处理器芯片,所述编码器用于测量运动机器人的运动信息并将其传输到中央处理器芯片,所述中央处理器芯片对激光雷达采集的离散数据点信息以及编码器测量的运动机器人运动信息进行处理后得到运动机器人相应位置下的局部地图,所述信号天线用于运动机器人和主控计算机的通信连接,中央处理器芯片通过信号天线将处理得到的局部地图传输到主控计算机并接收主控计算机发送的控制指令,主控计算机接收中央处理器芯片发送的局部地图并对运动机器人各个位置下的局部地图进行处理得到室内全局地图以及对原始地图进行更新。

所述运动机器人内还安装有为激光雷达、编码器以及中央处理器芯片进行供电的电源模块。

所述运动机器人内还设置有用于驱动运动机器人运动的机器人驱动模块,机器人驱动模块与机器人控制模块相连,机器人控制模块连接到中央处理器芯片。

所述中央处理器芯片还连接航向参考模块,航向参考模块与编码器配合以得到运动机器人的运动信息。

所述中央处理器芯片还连接局部地图生成模块,局部地图生成模块根据中央处理器芯片处理后的激光雷达采集的离散数据点信息以及编码器测量的运动机器人运动信息生成局部地图,局部地图生成模块生成局部地图后传输到与其连接的地图存储模块内,无线传输模块连接地图存储模块并将地图存储模块内的局部地图传输到主控计算机内。

所述运动机器人的底部安装有与机器人驱动模块相连接的行走机构。

所述运动机器人的行走机构为快速移动的轮式行走机构或者稳定移动的履带式行走机构。

一种激光扫描式室内地图生成和更新方法,包括以下具体步骤:

通过激光雷达得到361个环境点的数据,范围180度,间隔0.5度,把这些以极坐标表示的数据转化为笛卡尔系下的全局坐标;

将激光雷达采集到的离散点的数据信息处理成用来表示环境信息的线段,通过区域分块、线段分割和线段表示三个步骤来生成局部地图;

运动机器人在室内移动,得到多个局部地图,通过融合多个局部地图生成全局地图;

寻找局部地图和全局地图的相关线段,通过计算相关线段之间的关系来完成机器人的精确定位和全局地图的更新。

所述生成局部地图的步骤为:

通过坐标转换,得到361个离散点的笛卡尔坐标,先假设这361个点为一个区域,起点是第一个点,终点是第361个点,按照连续两点间的距离进行区域分块,具体步骤如下:

计算连续两个点之间的距离dj;

判断如果dj大于预先设定的阈值δ,则认为这两个点是不连续的,以这个点为分割点将区域分成两块,由于障碍物到激光雷达的距离不同,连续的相邻扫描点之间的距离也不同,为了取得较为精确的分块效果,采用动态阈值的方法来分块,如扫描点到激光雷达中心的距离小于d,选取的阈值为δ,如果距离为大于d且小于2d,选取的阈值为2δ;

判断每个区域内的扫描点的个数,如果每个区域包含点的个数小于3,该区域被视为噪声区域,舍弃这些噪声点;

经过区域分块,得到了可以用线段表示的区域bi(i=1,2…n),这些区域可以由一条或者多条线段来表示,对这些区域进行线性分割,步骤如下:

在区域块bi中,以第一个点ps(xs,ys)和最后一个点pe(xe,ye)作一条直线l,计算其余各点到这条直线的距离,选出距离最大的一个点,若这个距离大于阈值α,将这块区域分成两部分,同样采用动态阈值的方法进行线性分割,阈值α选为直线l长度的1/10;

重复上述步骤,得到m个可以用一条线段表示的线性区域li(i=1,2…m);生成局部地图。

所述全局地图的更新的步骤为:

生成局部地图得到的线段参数是需找相关线段的参考标准,可分为以下四个步骤:

①取出全局地图的一条线段lg,按照“线段范围”的方法,得出局部地图中符合条件的线段,如果不存在,则取出下一条全局地图的线段,再次计算,直到找到所有符合条件的线段lc为止;

②判断局部地图中的线段和全局地图中的线段是否相关,有两个条件用于测试:

1)δθ=∣θl-θg∣<β,θl是局部地图中线段和x轴的夹角,θg

是全局地图中线段lg和x轴的夹角,β为阈值,如果两条线段相关,则

必须满足这一个条件,

2)线段lc的重心到线段lg的垂直距离dl小于一个阈值δl,

如果满足以上两个条件,则这两条线段是相关的;

③对于符合条件①的lc,重复②的步骤,然后选取符合条件2且具有最高置信度,也就是(δθ,dl)值最小的线段lc作为线段lg的相关线段;

④重复步骤①-③,找出所有相关的线段对并计算得到每一对相关线段的(δθ,dl);

寻找到所有的相关线段后,下一步就是得到机器人的精确位姿,具体步骤如下:

选取一对相关的线段,假设(x,y,θ)为通过机器人自身系统得到的机器人的位姿,首先计算机器人的角度,然后重新计算局部地图中相关线段lc的参数,得到新重心,新重心到线段lg的距离为dl;

选取另外三对相关线段,重复上述步骤,这样总共得到四组机器人的位姿(xi,yi,θi),其中i=1,2,3,4,采用最小平方法使得各组位姿到新位姿的误差的平方和最小;

经过位姿更新得到的局部地图具有较高的可信度,融合局部地图的线段便可以完成全局地图的更新,分为以下两个步骤:

相关线段的更新,相关线段可分为3种情况,1)局部地图的线段是全局地图中的线段的一部分;2)局部地图的线段和全局地图中的线段完全重合;3)局部地图的线段和全局地图中的线段部分重合;

如果是第一和第二种情况,则从局部地图删去这条线段,如果是第三种情况,则以这对相关线段的原始数据为基础重新构造一条线段,并将其参数加入到全局地图中;

完成相关线段的更新后,局部地图中还存在和全局地图不相关的线段,就把这条线段直接插入到全局地图中,至此,完成了全局地图的更新;

所述线段范围方法具体为:

lg为全局地图中的一条线段,以lg的两个端点和激光雷达中心为定点圈定一个范围r,对于给定的范围r,局部地图中的线段可分为以下四种情况:线段的两个端点都在r外部而且与r无交;线段的两个端点都在r内部;线段的一个端点在r内部,一个端点在r外部;线段的两个端点都在r外部而且与r有两个交点,当寻找相关线段时,只考虑这些在r区域范围内的线段。

本发明的技术效果:充分利用激光雷达获取数据速度快而精确的特点,能够快速而精确的进行室内地图生成和更新。

附图说明

图1是本发明整体结构示意图;

图2是本发明原理结构示意图。

图中标号分别表示:1-运动机器人,2-激光雷达,3-编码器,4-中央处理器芯片,5-信号天线,6-机器人驱动模块,7-主控计算机,8-航向参考模块,9-电源模块,10-机器人控制模块,11-局部地图生成模块,12-地图存储模块,13-无线传输模块。

具体实施方式

下面结合附图对本发明进一步说明:

如图1所示,一种激光扫描式室内地图生成和更新装置,包括运动机器人1以及安装在运动机器人上的激光雷达2,所述激光雷达2安装在运动机器人1的顶部,所述运动机器人1内安装有编码器3及中央处理器芯片4,激光雷达2与中央处理器芯片4相连接,所述运动机器人1上还安装有信号天线5,运动机器人1通过信号天线5与主控计算机7通信连接,所述激光雷达2用以对室内环境进行扫描并将扫描得到的离散点数据信息传输到中央处理器芯片4,所述编码器3用于测量运动机器人1的运动信息并将其传输到中央处理器芯片4,所述中央处理器芯片4对激光雷达2采集的离散数据点信息以及编码器3测量的运动机器人1运动信息进行处理后得到运动机器人1相应位置下的局部地图,所述信号天线5用于运动机器人1和主控计算机7的通信连接,中央处理器芯片4通过信号天线5将处理得到的局部地图传输到主控计算机7并接收主控计算机7发送的控制指令,主控计算机7接收中央处理器芯片4发送的局部地图并对运动机器人1各个位置下的局部地图进行处理得到室内全局地图以及对原始地图进行更新。

如图2所示,所述运动机器人1内还安装有为激光雷达2、编码器3以及中央处理器芯片4进行供电的电源模块9。

运动机器人1内还设置有用于驱动运动机器人运动的机器人驱动模块6,机器人驱动模块6与机器人控制模块10相连,机器人控制模块10连接到中央处理器芯片4。

中央处理器芯片4还连接航向参考模块8,航向参考模块8与编码器3配合以得到运动机器人1的运动信息。

中央处理器芯片4还连接局部地图生成模块11,局部地图生成模块11根据中央处理器芯片4处理后的激光雷达2采集的离散数据点信息以及编码器3测量的运动机器人运动信息生成局部地图,局部地图生成模块11生成局部地图后传输到与其连接的地图存储模块12内,无线传输模块13连接地图存储模块12并将地图存储模块12内的局部地图传输到主控计算机7内。

运动机器人1的底部安装有与机器人驱动模块6相连接的行走机构。

运动机器人1的行走机构为快速移动的轮式行走机构或者稳定移动的履带式行走机构。

本发明的一种激光扫描式室内地图生成和更新方法,具体的工作流程如下:

地图创建可分为局部地图创建和全局地图创建。全局地图是通过融合多个局部地图的信息形成的,由于通过机器人硬件系统得到的位姿存在累计发散的误差,因此寻找局部地图和已经获得的全局地图的相关性是运动机器人定位和全局地图创建的一个关键问题。

在局部地图的创建过程中,提出了一个“聚合-分割-聚合”的方法来获得线段用以表示环境信息。在聚合和分割的过程中采用动态阈值的方法,可以在较短的时间内获得一个精确的局部地图。利用局部地图创建过程中获得的线段参数,寻找局部地图和全局地图的匹配关系,实现机器人的精确定位。利用激光雷达的中心和线段的端点构造一个区域,匹配过程中只考虑和这个区域有关的线段,这就是“线段范围”的方法,目的是减少匹配过程中的计算量。这种方法可显著减少全局地图的创建时间。

1.局部地图创建

1.1坐标转换

通过激光雷达可以得到361个环境点的数据(范围180度,间隔0.5度),这些数据是以激光雷达中心为极点的极坐标系表示的局部坐标,为了处理的方便,把这些以极坐标表示的数据转化为笛卡尔系下的全局坐标。

1.2局部地图创建

将激光雷达采集到的离散点的数据信息处理成用来表示环境信息的线段,采用“聚合-分割-聚合”的方法,通过区域分块、线段分割和线段表示三个步骤来完成。

1.2.1区域分块

通过坐标转换,可以得到361个离散点的笛卡尔坐标。先假设这361个点为一个区域,起点是第一个点,终点是第361个点。按照连续两点间的距离进行区域分块,具体步骤如下:

①计算连续两个点之间的距离dj。

②判断如果dj大于预先设定的阈值δ,则认为这两个点是

不连续的,以这个点为分割点将区域分成两块。由于障碍物到激光雷达的距离不同,连续的相邻扫描点之间的距离也不同,为了取得较为精确的分块效果,采用动态阈值的方法来分块,例如扫描点到激光雷达中心的距离小于d,选取的阈值为δ,如果距离为大于d且小于2d,选取的阈值为2δ。

③判断每个区域内的扫描点的个数,如果每个区域包含点的个数小于3,该区域被视为噪声区域,舍弃这些噪声点。

1.2.2线段分割

经过区域分块,得到了可以用线段表示的区域bi(i=1,2…n),这些区域可以由一条或者多条线段来表示。对这些区域进

行线性分割,步骤如下:

①在区域块bi中,以第一个点ps(xs,ys)和最后一个点pe

(xe,ye)作一条直线l,计算其余各点到这条直线的距离,选出距离最大的一个点,若这个距离大于阈值α,将这块区域分成两部分,同样采用动态阈值的方法进行线性分割,阈值α可选为直线长度l的1/10。

②重复步骤1),可以得到m个可以用一条线段表示的线性区域li(i=1,2…m)。将原始扫描数据先分为区域块,然后分为可以线性表示的线段

1.2.3线段表示

通过以上两个步骤,扫描得到的361个点被分成了区域分块和线段分割示意图m个线性区域,需要构造一条线段来最大程度地描述这些点之间的线性关系。假设线性区域li含有的扫描点的个数为n,用w(w1,w2…..wn-1)来表示权重矢量,假设相邻两点间的距离为,起始点到终止点的长度为l,则这样可以得到区域li的权重矢量w(w1,w2…..wn-1)。

2全局地图的创建

运动机器人在一个确定的位置得到一个局部地图,当运动机器人在房间内移动时,得到多个局部地图,全局地图是通过融合多个局部地图形成的。由于局部地图采用的是全局坐标,因此对相同的环境扫描得到的线段应该是重合的,由于机器人硬件系统得到的位姿存在误差,线段不可能完全重合,这样的线段就是相关线段。融合的关键就是寻找局部地图和全局地图的相关线段,通过计算相关线段之间的关系来完成机器人的精确定位和全局地图的更新。

2.1线段范围

在寻找局部地图和全局地图相关线段的过程中,为了减少检查的线段数量,提出了“线段范围”的方法。lg为全局地图中的一条线段,以lg的两个端点和激光雷达中心为定点圈定一个范围r,对于给定的范围r,局部地图中的线段可分为以下四种情况:①线段的两个端点都在r外部而且与r无交;②线段的两个端点都在r内部;③线段的一个端点在r内部,一个端点在r外部;④线段的两个端点都在r外部而且与r有两个交点。当寻找相关线段时,只考虑这些在r区域范围内的线段,“线段范围”缩短了寻找相关线段耗费的时间。

2.2寻找相关线段

局部地图创建得到的线段参数是需找相关线段的参考标准,可分为以下四个步骤:

①取出全局地图的一条线段lg,按照“线段范围”的方法,

得出局部地图中符合条件的线段,如果不存在,则取出下一条全局地图的线段,再次计算,直到找到所有符合条件的线段lc

为止。

②判断局部地图中的线段和全局地图中的线段是否相关,

有两个条件用于测试:

1)δθ=∣θl-θg∣<β(θl是局部地图中线段和x轴的夹角,θg

是全局地图中线段lg和x轴的夹角)。如果两条线段相关,则

必须满足这一个条件。

2)线段lc的重心到线段lg的垂直距离dl小于一个阈值δl。

如果满足以上两个条件,则这两条线段是相关的。

③对于符合条件①的lc,重复②的步骤,然后选取符合条件2且具有最高置信度,也就是(δθ,dl)值最小的线段lc作为线段lg的相关线段。

④重复步骤①-③,找出所有相关的线段对并计算得到每一对相关线段的(δθ,dl)。

2.3机器人定位

寻找到所有的相关线段后,下一步就是得到机器人的精确位姿。具体步骤如下:

①选取一对相关的线段,假设(x,y,θ)为通过机器人自身系统得到的机器人的位姿。首先计算机器人的角度,然后重新计算局部地图中相关线段lc的参数,得到新重心。新重心到线段lg的距离为dl。

②选取另外三对相关线段,重复步骤①,这样总共得到四组机器人的位姿(xi,yi,θi),其中i=1,2,3,4。采用最小平方法使得各组位姿到新位姿的误差的平方和最小。

2.4全局地图更新

经过位姿更新得到的局部地图具有较高的可信度,融合局部地图的线段便可以完成全局地图的更新,分为以下两个步骤:

①相关线段的更新,相关线段可分为3种情况,1)局部地图的线段是全局地图中的线段的一部分;2)局部地图的线段和全局地图中的线段完全重合;3)局部地图的线段和全局地图中的线段部分重合;

如果是第一和第二种情况,则从局部地图删去这条线段,如果是第三种情况,则以这对相关线段的原始数据为基础重新构造一条线段,并将其参数加入到全局地图中。

②完成相关线段的更新后,局部地图中还存在和全局地图

不相关的线段,就把这条线段直接插入到全局地图中。至此,完成了全局地图的更新。

需要说明的是,本申请实施例中所使用的激光雷达,编码器,中央处理器芯片,信号天线,机器人驱动模块,主控计算机,航向参考模块,电源模块,机器人控制模块,局部地图生成模块,地图存储模块,无线传输模块等元器件均为现有技术中常用的元器件。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

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