一种基于图优化的激光雷达路标地图构建方法与流程

文档序号:17392623发布日期:2019-04-13 00:35阅读:246来源:国知局
一种基于图优化的激光雷达路标地图构建方法与流程

本发明属于自动控制技术领域,提供了一种基于图优化的激光雷达路标地图构建方法。



背景技术:

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

基于激光雷达的定位方法可以分为基于反光板的定位导航方法和基于轮廓的定位导航方法,其中基于轮廓的定位导航方法计算量大、精度较差,无法适应移动机器人精密操作的要求;基于反光板的激光雷达定位导航方法精度高、稳定性好。激光雷达探测环境中的反光板建立路标地图,该技术方案采用三边法计算激光雷达的位姿,再利用该位姿和反光板在激光雷达坐标系中的坐标计算未知反光板在地图中的坐标。整个建图过程以接力的形式进行,逐步将所有的反光板纳入到地图之中。该技术方案存在以下如下问题:在地图构建的方式上,该方案采用接力的形式,直接利用已知反光板计算未知反光板在地图中的位置,建图过程中的误差会累积向后传播,在反光板数目较多时地图构建结果不准确。



技术实现要素:

本发明实施例提供一种基于图优化的激光雷达路标地图构建方法,旨在解决接力式构图过程中误差会累积向后传播,在反光板数目较多时地图构建存在结果不准确的问题。

为了实现上述目的,本发明提供了一种基于图优化的激光雷达路标地图构建方法,该方法包括如下步骤:

s1、检测当前帧中是否存在未知反光板,若检测结果为否,则直接执行步骤s2,若检测结果为是,在计算未知反光板在临时路标地图中的坐标,再执行步骤s2;

s2、构建节点nodecur,节点中包括当前帧中所有反光板的id、及反光板在激光雷达坐标系中的局部坐标;

s3、计算从当前节点nodecur到关联节点nodei的位姿变换;

s4、检测所有反光板的id是否均位于位姿地图中,若检测结果为是,则执行步骤s5,若检测结果为否,则执行步骤s1;

s5、将构建节点时建立的临时路标地图转换为路标地图。

进一步的,若节点nodei与当前节点nodecur中id相同的路标数目大于3,且存在id不同的路标点,则节点nodei即为当前节点nodecur的关联节点。

进一步的,在步骤s4之后,在步骤s5之前还包括:

s6、对位姿地图进行优化。

进一步的,未知反光板的提取方法具体如下:

s7、检测当前帧中是否存在至少3个反光板;

s8、若检测结果为是,则检测激光雷达在上一帧中是否定位成功;

s9、若检测结果为是,则基于动态匹配来匹配出当前帧中的已知反光板和未知反光板,若检测结果为否,则基于静态匹配来匹配出当前帧中的已知反光板和未知反光板。

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

s10、检测步骤s9中是否至少存在3个已知反光板;

s11、若检测结果为是,则计算出激光雷达当前在临时路标地图中的位姿,同时保存从激光雷达坐标系到反光板坐标系的旋转矩阵r及平移向量t;

s12、基于激光雷达坐标系到反光板坐标系的旋转矩阵r及平移向量t,计算未知反光板在临时路标地图中的坐标。

本发明提供的基于图优化的激光雷达路标地图构建方法具有如下有益效果:

1.基于刚体变换的激光雷达位姿计算方法,提高了激光雷达位姿计算与地图构建的精度的同时,降低了反光板的分布要求;

2.基于位姿图来进行路标地图的重构,解决了由于误差累积传播导致的建图精度下降的问题。

附图说明

图1为本发明实施例提供的基于图优化的激光雷达路标地图构建方法流程图。

具体实施方式

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

在本发明中,将激光雷达水平放置,反光板垂直于地面张贴,将激光雷达的扫描线与反光板的中点大致对齐。

图1为本发明实施例提供的基于图优化的激光雷达路标地图构建方法流程图,该方法包括如下步骤:

s1、提取当前帧中的反光板,检测当前帧中是否存至少3个反光板,若检测结果为是,则检测临时路标地图中是否存在路标,若存在,则执行步骤s2,若不存在,以激光雷达中心为临时路标地图的原点,计算当前帧中所有反光板在临时路标地图中的坐标;

根据激光雷达探测距离与反光板反射强度之间的关系,筛选出反光板上的扫描点,利用单个反光板上的反射点集拟合得到反光板中心,检测反光板中心到激光雷达中心的距离及夹角,并计算反光板中心在激光雷达坐标系中的坐标,基于激光雷达坐标系中的反光板个数来确定当前帧中提取到的反光板数量;首先判断此次临时路标地图的构建是否为首次,即检测临时路标地图中是否存在路标点,若不存在,则说明为首次建图,若存在,则说明为非首次建图。

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

本发明中的反光板即为路标,已知反光板是指已经纳入临时路标地图中的反光板,未知反光板是指未纳入临时路标地图中的反光板。

s3、检测当前帧中是否至少存在3个已知反光板,若检测结果为是,则执行步骤s4,若检测结果为否,则返回步骤s1;

s4、基于3个已知反光板来计算激光雷达当前在临时路标地图中的位姿,并保存激光雷达坐标系到路标坐标系中的旋转矩阵r及平移向量t;

已知反光板在雷达坐标系中的局部坐标xloc、以及在临时路标地图坐标系中的地图坐标xmap,由于反光板的局部坐标到地图坐标之间转换满足刚体变换,因此根据公式

xmap=rxloc+t

计算出雷达坐标系与地图坐标系之间的旋转矩阵r、平移向量t,并进行保存,因为激光雷达的局部坐标为则激光雷达在临时路标地图中的坐标

s5、检测当前帧中是否存在未知反光板,若检测结果为否,则执行步骤s6,若检测结果为是,则计算未知反光板在临时路标地图中的坐标,再执行步骤s6;

通过已知激光雷达当前的旋转矩阵r、平移向量t和反光板的局部坐标(xloc,yloc),计算未知反光板在临时路标地图中的坐标,并将未知反光板加入临时路标地图中:

s6、构建新的节点nodecur,将当前扫描到路标点的id、及反光板在激光雷达坐标系中的局部坐标加入节点nodecur中;

s7、在位姿地图中顺序提取节点nodei,假定位姿地图中当前有n个节点,node1,......,noden

s8、检测节点nodei与当前节点nodecur是否存在至少3个id相同的路标点,检测结果为是,则执行步骤s9,若检测结果为否,检测i是否等于n,若检测结果为是,输出当前节点nodecur的所有关联节点;

s9、检测节点nodei是否存在id不同的路标点,若检测结果为是,则节点nodei为当前节点nodecur的关联节点,令i=i+1,执行步骤s8;

s10、依次计算当前节点到各关联节点的位姿变换;

id相同的路标点在关联节点nodei、当前节点nodecur中的局部坐标分别为xi(xi,yi)、xcur(xcur,ycur),两个坐标系之间符合刚体变换,则xi=rc-ixcur+tc-i,得到当前节点nodecur到节点nodei的位姿变换rc-i、tc-i;

s11、检测位姿图中是否包含了所有反光板的id,若检测结果为是,则说明位姿地图构建完毕,则执行步骤s12,若检测结果为否,说明位姿地图未构建完,则返回步骤s1继续构建位姿地图;

s12、对位姿地图进行优化;

机器人的运动构建成了一个带有n条边的图,所建图模型可以用以下方程描述:

其中,xk为图模型中第k个节点位置信息;zk为对图模型中第k个节点观测得到的位置信息;ek为xk与zk之间的误差;ω为信息矩阵,是协方差矩阵的逆。因为zk为已知项,则误差项可写成如下形式:

对第k条边的ek(xk)进行一阶泰勒展开:

上述的jk为ek关于xk的导数,矩阵形式为下雅克比阵。对第k条边的目标函数进一步展开有:

其中ck为常数项,2bk为一次项系数,hk为二次项系数。则目标函数的fk改变的值为δfk=2bkδx+δxthkδx,令

于是该问题转变成一个线性方程的求解:

hkδx=-bk

解得全局最优的x*=x+δx,并最为初始值代入f(x)进行迭代计算,最后计算得到每个节点的位姿。

s13、用路标地图代替构建节点时建立的临时路标地图。

前节点在地图中的旋转矩阵r、平移向量t,节点中路标点的局部坐标xloc,则路标点的路标地图坐标为xmap=rxloc+t,遍历所有的节点得到所有路标点的地图坐标,用路标地图代替构建节点时建立的临时地图。

本发明提供的基于图优化的激光雷达路标地图构建方法具有如下有益效果:

1.基于刚体变换的激光雷达位姿计算方法,提高了激光雷达位姿计算与地图构建的精度的同时,降低了反光板的分布要求;

2.基于位姿图来进行路标地图的重构,解决了由于误差累积传播导致的建图精度下降的问题。

在本发明涉及的静态匹配及动态匹配可以采用现有的方法,或者是基于如下如下方法来实现静态匹配或动态匹配。

在本发明实施例中,设置反光板匹配允许的误差为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