matchScansLine

使用线要素两个激光扫描之间的估计姿态

描述

relpose= matchScansLine(currScanrefScaninitialRelPose估计基于匹配线两次扫描之间的相对姿态中的每个扫描功能识别。在相对位姿指定的初始猜测,initialRelPose

[relpose统计] = matchScansLine(___返回有关的协方差和退出条件的其他信息统计作为结构使用先前的输入。

[relpose统计调试信息] = matchScansLine(___返回额外的调试信息,调试信息中,从基于行的扫描匹配结果。

[___] = matchScansLine(___,名称,值)使用一个或多个指定的选择名称,值对参数。

例子

全部收缩

这个例子说明了如何使用matchScansLine函数来估计给定的INTIAL estiamte激光雷达扫描之间的相对姿势。该标识线要素可视化,以显示扫描匹配算法联营扫描之间功能如何。

加载一对激光雷达扫描。该。垫文件还包含相对位姿差异的INTIAL猜测,initGuess,这可基于测距或其他传感器数据。

加载tb3_scanPair.mat图(S1)保持图(S2)保持

设置参数线特征提取和关联。激光雷达数据的噪声确定平滑度阈值,当断线发生时为特定的线要素限定。加大对越吵激光雷达数据这个数值。的相容性尺度确定何时特性视为匹配。加大对上线的特征参数宽松限制该值。

smoothnessThresh = 0.2;compatibilityScale = 0.002;

呼叫matchScansLine指定为名称 - 值对给定的初始猜测和其它参数。该函数计算线功能对于每个扫描,试图与它们匹配,并利用总体估计得到的姿态的差异。

[relPose,统计数据,debuginfo软] = matchScansLine(S2,S1,initGuess,...'SmoothnessThreshold',smoothnessThresh,...'CompatibilityScale',compatibilityScale);

匹配扫描,后调试信息输出为您提供有关检测到的线路特征参数信息,[RHOα-,并假设其中的功能扫描之间的匹配。

debugInfo.MatchHypothesis状态,所述第一,第二和第六行中的功能S1匹配第五,第二和第四特征在S2

debugInfo.MatchHypothesis
ANS =1×65 2 0 0 0 4

所提供的辅助函数绘制两次扫描,并与标签提取的特征。S2被变换为在基于用于相对位姿的INTIAL猜测相同的帧。

exampleHelperShowLineFeaturesInScan(S1,S2,debuginfo软,initGuess);

使用从估计的相对姿态matchScansLine改造S2。然后,画出两个扫描表明,相对姿态不同的是准确,扫描覆盖表现出同样的环境。

S2T = transformScan(S2,relPose);CLF图(S1)保持图(S2T)保持

输入参数

全部收缩

目前的激光雷达扫描读数,指定为lidarScan宾语。

您的激光雷达扫描可以包含天道酬勤为NaN值,但该算法忽略它们。

参考激光雷达扫描读数,指定为lidarScan宾语。

您的激光雷达扫描可以包含天道酬勤为NaN值,但该算法忽略它们。

电流相对于所述基准激光扫描帧中的姿态的初始猜测,指定一个[X Y的2θ向量。[X Y]是翻译米,THETA是弧度的旋转。

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:“LineMergeThreshold”,[0.10 0.2]

阈值检测线破发点中的扫描,指定为标量。平滑度是通过调用定义差异(差异(SCANDATA))并假定相等间隔的扫描角。高于此阈值对应平滑值扫描点被认为破发点。对于具有较高噪声电平的激光雷达扫描数据,增加此阈值。

在每个线要素的扫描点的最小数量,指定为正整数大于3。

线要素不能从一组扫描点的确定,如果点的该组的数目是低于该阈值。当激光雷达扫描数据是有噪声的,设置此属性太小可能会导致低质量的线特征被识别和歪斜的匹配结果。在另一方面,如果这个数字被设置得大一些重点线功能可能被遗漏。

在线参数阈合并线的功能,指定作为两元件矢量[RHOα-。一条线由两个参数定义:

  • RHO- 距离从原点到沿向量的行垂直于线,以米为单位指定。

  • α- 之间的角度X轴和RHO矢量,以弧度为单位指定。

如果两个线要素这些参数之间的差异低于给定阈值,所述线的特征合并。

下界突出值来检测一个角落里,指定为正标量。

突出措施局部极值在激光雷达数据多少脱颖而出。只有值高于该下限被视为一个角落。角落帮助识别线的功能,但并不是功能本身的一部分。对于嘈杂的激光雷达扫描数据,增加此下限。

规模用于调整特征关联,指定为正标量的相容性的阈值。较低的规模装置,用于相关联的特征的相容性更紧密的阈值。如果有明显的线要素LiDAR数据中没有发现的功能,增加该值。对于无效的特征匹配,减小此值。

输出参数

全部收缩

当前扫描相对于构成对参考扫描,返回[X Y的2θ,其中[X Y]是翻译米,THETA是弧度的旋转。

扫描匹配信息,返回与以下字段的结构:

  • 协方差- 代表相对姿态估计的协方差3×3矩阵。该matScansLine功能不之间提供协方差(X,Y)THETA相对位姿的组成部分。因此,矩阵遵循模式:[CXX,CXY 0;CYX CYY 0;0 0 Ctheta]

  • ExitFlag- 标量值,表示解算器的出口条件:

    • 0- 没有错误。

    • 1- 的线特征(<2)数量不足是在一个或两个扫描的发现。请考虑使用不同的扫描更多的线要素。

    • 2- 线特征匹配的数量不足被识别。这可能表示initialRelPose无效或扫描相距甚远。

调试用于基于行的扫描匹配结果信息,返回与以下字段的结构:

  • ReferenceFeatures- 线要素从基准扫描作为抽出ñ-by-2矩阵。每个线要素被表示为[RHOα-为参数方程,RHO=X∙COS(α)+ÿ∙罪(α)。

  • ReferenceScanMask- 面膜指示哪些被用于每个线要素中的参考扫描点作为ñ-通过-p矩阵。每一行对应的行ReferenceFeatures并包含在每个点零和的refScan

  • CurrentFeatures- 线要素从当前扫描作为抽出ñ-by-2矩阵。每个线要素被表示为[RHOα-为参数方程,RHO=X∙COS(α)+ÿ∙罪(α)。

  • CurrentScanMask- 面膜指示哪些被用于每个线要素在当前扫描点作为ñ-通过-p矩阵。每一行对应的行ReferenceFeatures并包含在每个点零和的refScan

  • MatchHypothesis- 最佳线路特征匹配假设为ñ元素向量,其中ñ是的线要素的数量CurrentFeatures。每个元素表示在对应的特征ReferenceFeatures并给出了匹配特征的索引ReferenceFeatures是索引匹配

  • 匹配值- 标量值表示每个的得分MatchHypothesis。较低的值被认为是一个更好的匹配。如果两个元素MatchHypothesis具有相同的索引,使用具有较低评分的功能。

参考

[1]内拉,J.,和J.D.Tardos。“使用联合兼容性测试数据关联随机映射。”IEEE交易机器人与自动化17,没有。6(2001):890-97。https://doi.org/10.1109/70.976019。

[2]沉,孝通,埃米利奥Frazzoli,丹妮拉罗斯和马塞洛H.昂。“快速联合相容分枝定界为特点的云匹配。”2016 IEEE / RSJ国际会议智能机器人与系统(IROS),2016年https://doi.org/10.1109/iros.2016.7759281。

介绍了在R2020a