基于激光雷达AGV的实时地图创建

基于激光雷达的 AGV ( Automated Guided Vehicle,简称 AGV) 要实现自主导航必须依靠激光雷达和环境地图对自身进行定位,而根据先验地图进行 AGV 定位和自主导航得到广泛应用,但实际环境往往不能提供准确的先验地图,给 AGV 的自主导航带来很大的问题[1 - 2]。因此,AGV 在未知环境中的定位和地图构建成为 AGV 研究领域的一个热点问题,而构建地图最重要的是通过定位来获得 AGV 在环境中的准确位置。目前 AGV 常用的地图有二种,一是栅格地图,用每一网格被占据的概率值来表示环境信息,但网格地图的精确度不高; 二是特征地图,基于几何的表示方法,利用线段、弧线来表示环境信息[3]。特征地图信息存储量小,可以直接应用在 AGV 的导航和路径规划上。激光雷达和红外、声纳等传感器相比,获取数据速度快而精确,干扰小。因此,利用激光雷达数据创建的地图具有很高的精确度。地图创建可分为局部地图创建和全局地图创建,全局地图是通过融合多个局部地图的信息形成的,由于通过 AGV 硬件系统得到的位置存在累计发散的误差,因此寻找局部地图和已经获得的全局地图的相关性是 AGV 定位和全局地图创建的一个关键问题[4]。在局部地图的创建过程中,提出的基于分割 -合并的特征线段提取方法来获得线段用以表示环境信息。在分割和合并的过程中采用动态阈值的方法,可以在较短的时间内获得一个精确的局部地图。利用局部地图创建过程中获得的线段参数,寻找局部地图和全局地图的匹配关系,实现 AGV 的精确定位。利用激光雷达的中心和线段的端点构造一个区域,匹配过程中只考虑和这个区域有关的线段,这就是 “线段范围”的方法,目的是减少匹配过程中的计算量,减少全局地图的创建时间。为了减小算法的运行时间,提高系统运行速度,开发基于 ARM Cortex - A9 嵌入式主控平台,利用该平台实现激光数据的采集和处理、地图的创建、路径规划和导航等功能。

1 创建局部地图

地图是 AGV 内部对外部环境的认知,是 AGV 运动的基础。地图的创建是一个复杂的过程,其实现主要依靠内部传感器获取自身的位置,外部传感器获取环境数据信息[5 - 7]。将激光雷达采集到的离散点的数据信息处理成用来表示环境信息的线段,采用 “聚合 - 分割 - 聚合”的方法,通过区域分块、线段分割和线段表示三个步骤来完成局部地图的创建。

首先通过激光雷达可以得到 501 个环境点的数据 ( 范围 180°,间隔 0. 36°) ,这些点是以激光雷达中心的极坐标系表示的局部坐标。经过坐标转换,可以得到假设 501 个离散点的笛卡尔坐标。假设这501 个点为一个区域,起点是第 1 个点,终点是第 501 个点。按照连续两点间的距离进行区域分块,判断如果两点间的距离大于预先设定的值,则认为这两个点是不连续的,以这个点为分割点将区域分成两块。判断每个块内的扫描点的个数,如果每个块内包含点的个数小于 3,该区域被视为噪声区域,舍弃这些噪声点。

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

通过以上两个步骤,扫描得到的 501 个点被分成了区域分块和线段分割的 M 个线性区域,另外,需要构造一条线段来最大程度地描述这些点之间的线性关系。激光雷达获得的原始数据 ( 离散的点) ,经过区域分块、线段分割和线段表示三个步骤就转化为局部地图 ( 连续的线段) 。图 1 为激光雷达在一个位置点扫描并经过以上处理后的局部地图。

图 1 局部地图

图 1 局部地图

基于激光雷达AGV的实时地图创建-AGV吧
基于激光雷达AGV的实时地图创建
此内容为付费资源,请付费后查看
20积分
付费资源
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容