一种基于反光板的激光雷达地图构建及定位方法与流程

文档序号:17392635发布日期:2019-04-13 00:35阅读:731来源:国知局
一种基于反光板的激光雷达地图构建及定位方法与流程

本发明属于自动控制技术领域,提供了一种基于反光板的激光雷达地图构建及定位方法。



背景技术:

随着社会的发展和技术的进步,移动机器人越来越深的介入到人类的日常生活中,例如家庭中的清洁机器人、工厂中的搬运机器人以及餐馆中的送餐机器人等。移动机器人想要实现上述功能必须准确的知道自身所在的位置,即实时定位。而移动机器人实时定位的先决条件是建立地图,这是机器人导航和其它智能行为的关键。移动机器人定位导航常用的传感器有磁导航、摄像机和激光雷达等。其中磁导航的导航路径单一,不利于扩展和更改,使用的局限性较大。基于视觉的定位导航方法受光源条件影响大,稳定性和精度较差,无法让移动机器人进行稳定、精密的操作。

基于激光雷达的定位导航方法可以分为基于反光板的定位导航方法和基于轮廓的定位导航方法,其中基于轮廓的定位导航方法计算量大、精度较差,无法适应移动机器人精密操作的要求;基于反光板的激光雷达定位导航方法精度高、稳定性好。现有的基于反光板的激光雷达定位方法分为三边法和三角法,三边法在定位时将反光板的角度信息和距离信息分开计算,导致定位的精度降低,而地图构建是依据定位的结果来计算的,定位精度的下降同样会导致地图构建精度的降低。



技术实现要素:

本发明实施例提供一种基于反光板的激光雷达地图构建及定位方法,旨在通过坐标转换法进行定位,提高了定位的精度,同时精准定位能提高路标地图的构建精度。

为了实现上述目的,本发明提供了基于反光板的激光雷达地图构建及定位方法,所述方法包括如下步骤:

s1、判断当前是否进入定位模式,若判断结果为否,则进入建图模式,即执行步骤s2、步骤s3、步骤s4及步骤s5,若判断结果为是,进入定位模式,即执行步骤s2、步骤s3及步骤s4;

s2、提取当前帧中的反光板,检测反光板中心距激光雷达中心的距离及夹角,计算各反光板在雷达坐标系中的坐标;

s3、检测激光雷达在上一帧中是否定位成功,若检测结果为是,则基于动态匹配来匹配出当前帧中的已知反光板和未知反光板,若检测结果为否,则基于静态匹配来匹配出当前帧中的已知反光板和未知反光板;

s4、基于已知反光板来计算激光雷达当前帧在路标地图中的位姿;

s5、计算未知反光板在路标地图中的坐标,并更新路标地图。

进一步的,在定位模式中,在步骤s3之前还包括:

检测当前帧提取的反光板数量是否大于2,若检测结果为是,则执行步骤s3。

进一步的,在建图模式中,在步骤s3之前还包括:

判断当前帧提取的反光板数量是否大于2;

若判断结果为是,则检测当前路标地图中是否存在路标;

若检测结果为否,则以激光雷达中心作为路标坐标系的原点,计算当前帧中的反光板在路标坐标系中的坐标,若检测结果为是,则判断当前帧提取的反光板数量是否大于3,若判断结果为是,则执行步骤s3。

进一步的,步骤s4中,激光雷达在路标地图中位姿的计算方法具体如下:

在动态匹配或静态匹配后,检测是否至少存在3个已知反光板;

若检测结果为是,则基于3个已知反光板来计算当前激光雷达在路标地图中的位姿,并保存激光雷达坐标系与地图坐标系之间的旋转矩阵rl→m、平移向量tl→m。

进一步的,步骤s5中,未知反光板在路标地图中的坐标计算方法具体如下:

检测未知反光板的数量是否大于0;

若检测结果为是,则根据步骤旋转矩阵rl→m、平移向量tl→m及未知反光板在激光雷达坐标系中的坐标(xloc,yloc),计算未知反光板在路标地图中的坐标。

本发明提供的基于反光板的激光雷达地图构建与定位方法的益技术效果如下:采用坐标转换法进行定位,提高了定位的精度,精准的定位才能构建出精准的路标地图。

附图说明

图1为本发明实施例提供的基于反光板的激光雷达地图构建及定位方法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明要解决的是移动机器人在激光雷达的引导下,能够通过扫描反光板建立一个精确的路标地图,并能根据该地图稳定、准确的计算出激光雷达在地图中位置的问题。该发明实施时,需要将激光雷达水平放置,反光板垂直于地面张贴,将激光雷达的扫描线与反光板的中点大致对齐。

图1为本发明实施例提供的基于反光板的激光雷达地图构建及定位方法流程图,该方法具体包括如下步骤:

s1、判断当前是否进入定位模式,若判断结果为否,进入建图模式,执行步骤s2、步骤s3、步骤s4及步骤s5,若判断结果为是,进入定位模式,执行步骤s2、步骤s3及步骤s4;

基于步骤s2、步骤s3及步骤s4来进行激光雷达的定位,即获取激光雷达中心在路标地图中的位置,只有在接收到切换指令后,才会进入建图模式,基于步骤s2、步骤s3、步骤s4及步骤s5来构建路标地图,反光板即为路标地图中的路标,建立路标地图的过程就是不断的将未知反光板纳入路标地图,当所有未知反光板都纳入路标地图,则路标地图构建完毕,已知反光板是指纳入路标地图中的反光板,未知反光板是指未纳入路标地图中的反光板,在将当前帧中的未知反光板纳入路标地图后,自动切回定位模式。

s2、提取当前帧中的反光板ri,检测反光板中心距激光雷达中心的距离及角度ri(di,θi),基于ri(di,θi)来计算反光板中心在激光雷达坐标系中的坐标;

根据激光雷达探测距离与反光板反射强度之间的关系筛选出反光板上的扫描点,利用单个反光板上的反射点集拟合得到反光板中心,检测反光板中心距激光雷达中心的距离di及角度θi,用ri(di,θi)来表示反光板ri的中心距激光雷达中心的距离di及角度θi,基于ri(di,θi)计算反光板中心在激光雷达坐标系中的坐标。

s3、检测激光雷达在上一帧中是否定位成功,若检测结果为是,则基于动态匹配来获取当前帧中的已知反光板和未知反光板;若检测结果为否,则基于静态匹配来获取当前帧中的已知反光板和未知反光板;

由于激光雷达在当前帧的位姿与激光雷达在上一帧的位姿差异较小,通过激光雷达在上一帧中的定位来计算当前帧中的反光板在路标地图中的坐标,该反光板在路标地图中的坐标与反光板实际在路标地图中的坐标存在偏差,通过与路标地图中的路标进行匹配,可以获取当前帧中的已知反光板和未知反光板,动态匹配相对于静态匹配计算量小,匹配速度更快。

在本发明实施例中,在定位模式中,在步骤s3之前还包括:

检测当前帧提取的反光板数量是否大于2,若检测结果为是,则执行步骤s3。

在本发明实施例中,在建图模式中,在步骤s3之前还包括:

判断当前帧提取的反光板数量是否大于2;

若判断结果为否,返回步骤s1,则若判断结果为是,则检测当前路标地图中是否存在路标,主要用于判断是否为首次建图;

若检测结果为否,则为首次建图,以激光雷达中心作为路标坐标系的原点,计算当前帧中的反光板在路标坐标系中的坐标,若检测结果为是,则为非首次建图,判断当前帧提取的反光板数量是否大于3,若判断结果为是,则执行步骤s3,若当前帧提取的反光板数量小于3,则返回步骤s1。

s4、基于已知反光板来计算激光雷达中心在路标地图中的位姿,并保存激光雷达坐标系与地图坐标系之间的旋转矩阵rl→m、平移向量tl→m,

在静态匹配或动态匹配后,检测是否存在至少3个已知反光板,若检测结果为是,则基于当前帧中的三个已知反光板来计算当前激光雷达在路标地图中的位姿,若检测结果为否,则当前定位失败,返回步骤s1,激光雷达当前在路标地图中的位姿的计算方法具体如下:

已知反光板在雷达坐标系中的局部坐标xloc、在地图坐标系中的地图坐标xmap,从反光板的局部坐标到地图坐标之间转换满足刚体变换,因此根据公式(1)来计算激雷达在路标地图中的位姿,公式(1)表示如下:

xmap=rxloc+t(1)

可以计算出雷达坐标系与地图坐标系之间的旋转矩阵r、平移向量t。因为激光雷达的局部坐标为则激光雷达在地图中的坐标

s5、基于激光雷达坐标系与地图坐标系之间的旋转矩阵rl→m、平移向量tl→m,计算未知反光板在路标地图中的坐标,并更新路标地图,未知反光板在路标地图中的坐标计算方法具体如下:

检测未知反光板的数量是否大于0;

若检测结果为否,则返回步骤s1,若检测结果为是,则根据步骤旋转矩阵rl→m、平移向量tl→m和未知反光板在激光雷达坐标系中的坐标(xloc,yloc),通过公式(2)计算未知反光板在路标地图中的坐标,变为已知反光板,计算公式(2)具体如下:

其中,(xmap,ymap)未知反光板在路标地图中的坐标,(xloc,yloc)为未知反光板在激光坐标系中的坐标。

本发明提供的基于反光板的激光雷达地图构建与定位方法的有益技术效果如下:采用坐标转换法进行定位,提高了定位的精度,精准的定位才能构建出精准的路标地图。

在本发明实施例中,设置反光板匹配允许的误差为matchw,定义全局最优匹配的误差best_err等于无穷大,本发明中的静态匹配具体包括如下步骤:

s11、根据路标地图中m个路标点r1(x1,y1),...,rm(xm,ym),计算两两路标点之间的距离,得到全局距离列表d1,2,...,d1,m;...;dm,1,...,dm,m-1;

其中,dm,m-1表示路标点rm与路标点rm-1之间的距离,(xm,ym)为第m个路标点rm在路标地图中的坐标;

s12、根据当前帧中的n个反光板r1(x1,y1),...,rn(xn,yn),计算两两反光板之间的距离,得到局部距离列表d1,2,....,d1,n;....;dn,1,...,dn,n-1;

dn,n-1表示反光板rn与反光板rn-1之间的距离,(xn,yn)为第n个反光板rn在激光雷达坐标系中的坐标,根据激光雷达探测距离与反光板反射强度之间的关系筛选出反光板上的扫描点,利用单个反光板上的反射点集拟合得到反光板中心,检测反光板中心距激光雷达中心的距离di及角度θi,用ri(di,θi)来表示反光板ri的中心距激光雷达中心的距离di及夹角θi,基于ri(di,θi)计算反光板中心在激光雷达坐标系中的坐标。

s13、选择全局距离列表中的第i行di与局部距离列表中的第j行dj,假设路标地图中第i个路标点与当前帧中的第j个反光板匹配成功,将di行中的每一个元素与dj行中的每一个元素进行对比,若di行中的第k个元素,与dj行中的第l个元素满足abs(di,k-dj,l)<matchw,则将第k个路标点加入到第l个反光板的候选匹配中,对比结束得到di与dj的匹配表matchlisti,j={r1:ri,...;...;rn:rj,...};

s14、对匹配表matchlisti,j进行最佳匹配查找,得到当前最佳的匹配组合、匹配数目macth_count和匹配误差macth_err。若macth_count≥3且macth_err小于全局最优匹配的误差best_err,用当前匹配组合替换全局最优的匹配组合,令best_err=macth_err;

s15、检测当前j的取值是否等于n,若j≠n,则令j=j+1,并执行步骤s13,若j=n,则检测当前i的取值是否为m,若i≠m,则令i=i+1,j=1,执行步骤s13,若i=m,则输出全局最优匹配,若全局最优匹配的best_err<matchw,则反光板匹配成功,返回全局最优匹配组合,若best_err≥matchw,则输出匹配失败。

在本发明实施例中,反光板的动态匹配具体包括如下步骤:

在激光雷达在上一帧中的位姿获取成功,在上一帧中的位姿为pose(x,y,θ),基于动态匹配来寻找反光板对应的路标点,动态匹配的步骤如下:

s21、计算路标地图中所有路标点r1(x1,y1),....,rm(xm,ym)距激光雷达中心的距离,提取距离大于最小探测距离distmin,且小于最大探测距离distmax的路标点r1(x1,y1),....,rz(xz,yz)

s22、基于激光雷达在上一帧中的位姿pose(x,y,θ),计算n个反光板r1(x1,y1),...,rn(xn,yn)在路标地图中的坐标p(x,y),

s23、计算反光板rk与路标点rl的距离将路标点rl加入到反光板rk的匹配列表中;

s24、检测当前l的取值是否等于z,若l≠z,则令l=l+1,执行步骤s23,若l=z,则检测当前k的取值是否为n,若k≠n,则令k=k+1,l=1,执行步骤s23,若k=n,则输出匹配表matchlistr1:ri,....;....;rn:rj,...;

s25、查找匹配表matchlist中的最优匹配组合,若最优匹配组合的匹配数目大于2,且macth_err最小,若最优匹配组合的匹配误差小于matchw,则认为反光板匹配成功,返回最优匹配组合,否则,匹配失败。

在本发明实施例中,静态匹配及动态匹配中匹配表中的最佳匹配查找方法具体如下:

s31、按照设定的顺序从每个反光板的可能匹配路标点中选择一个,得到一个匹配组合

已知当前扫描到n个反光板,每个反光板所有的可能匹配为r1:ri,....;....;rn:rj,...,设置当前最佳匹配的误差为minerr。

s32、删除匹配组合中错误匹配,获得匹配组合计算的匹配误差matcherr,若matcherr小于当前最佳匹配组合的匹配误差minerr,则将所述匹配组合设为当前最佳匹配,令minerr=matcherr,返回步骤s31,直至遍历匹配表中所有的匹配组合,输出最佳匹配、最佳匹配的匹配数目及匹配误差。

在本发明实施例中,错误匹配的删除方法具体包括如下步骤:

s321、从匹配组合中顺序提取n个反光板及其对应的路标点;

s322、计算第i个反光板ri与剩余反光板rj(j≠i)间距离以及路标点ri与剩余路标点rj(j≠i)间的距离路标点ri为反光板ri的可能匹配路标点,路标点rj为反光板ri的可能匹配路标点;

s323、计算之差deta_dist,统计deta_dist小于matchw的个数macth_count_i,若macth_count_i≥3,则匹配组合的匹配数目macth_count加1,否则,将反光板ri的匹配路标点设为空;

s324、检测i是否等于n,若i≠n,则令i=i+1,并执行步骤s322,若i=n,则输出匹配组合即将更新为及匹配组合的数目macth_count,若macth_count<3,则返回步骤s321,若macth_count≥3,执行步骤s325;

s325、将匹配组合中的反光板ri与反光板rj进行比较,检测反光板ri与反光板rj是否匹配到同一路标点;

s326、若反光板ri与反光板rj未匹配到同一路标点,则检测j是否等于n,若j≠n,令j=j+1,执行步骤s325,若j=n,则检测i是否等于n,若i≠n,令i=i+1,j=i+1执行步骤s325,若i=n,则输出匹配组合若反光板ri与反光板rj匹配到同一路标点,则匹配组合的macth_count减去1,检测macth_count是否小于3,若macth_count<3,则返回步骤s321,若macth_count≥3,则执行步骤s327;

s327、提取反光板ri、rj及两反光板ri、rj的剩余反光板rm(m≠i,j),剩余反光板中不包括匹配路标点为空的反光板;

s328、计算反光板ri与剩余反光板rm之间的距离及路标点ri与剩余路标点rm间的距离计算距离差将距离差进行累积计算反光板rj与剩余反光板rm之间的距离计算路标点rj与剩余路标点rm间的距离计算距离差将距离差进行累积其中,路标点ri为反光板ri在匹配组合中的匹配路标点,路标点rm为反光板rm在该匹配组合中的匹配路标点;

s329、比较sumi与sumj,若sumi<sumj,则保留反光板ri匹配的路标点,将反光板rj的匹配路标点设为空,若sumi>sumj,保留反光板rj匹配的路标点,将反光板ri的匹配路标点设为空;

s330、在匹配组合中提取匹配路标点不为空的反光板r1,...,rs;

s331、计算反光板ri与反光板rj之间的距离及路标点ri与路标点rj之间的距离路标点ri与路标点rj分别为反光板ri与反光板rj在匹配组合中的匹配路标点;

s332、计算的差值,若的差值大于matchw,则执行步骤s333;若的差值小于或等于matchw,检测j是否等于s,若j≠s,令j=j+1,执行步骤s331,若j=s,则检测i是否等于s,若i≠s,则令i=i+1,j=i+1,执行步骤s331,若i=s,则输出

s333、反光板ri与反光板rj之间至少有一个匹配错误,令匹配组合的macth_count减1,若macth_count<3,则返回步骤s321,若macth_count≥3,则执行步骤s334;

s334、提取反光板ri、rj及两反光板ri、rj的剩余反光板rm(m≠i,j),且剩余反光板中不包括匹配路标点为空的反光板;

s335、计算反光板ri与剩余反光板rm间的距离及路标点ri与剩余路标点rm间的距离计算距离差将距离差进行累积计算反光板rj与剩余反光板rm间的距离及路标点rj与剩余路标点rm间的距离计算距离差将距离差进行累积其中,路标点ri为反光板ri在匹配组合中的匹配路标点,路标点rm为反光板rm在匹配组合中的匹配路标点;

s336、将sumi与sumj进行比较,若sumi<sumj,则保留反光板ri匹配的路标点,将反光板rj的匹配路标点设为空,sumi≥sumj,保留反光板rj匹配的路标点,将反光板ri的匹配路标点设为空。

该反光板的匹配方法具有如下有益效果:分层进行匹配,提高了匹配的速度,提高匹配的可靠性。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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