主要内容

matchScansLine

估计构成两个激光扫描使用线特性

自从R2020b

描述

relpose= matchScansLine (currScan,refScan,initialRelPose)估计两个扫描之间的相对构成基于匹配线特征在每个扫描识别。指定一个初始猜测相对构成,initialRelPose

(relpose,统计数据)= matchScansLine (___)返回关于协方差的附加信息和退出条件统计数据作为一个结构前投入使用。

例子

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

例子

(___)= matchScansLine (___、名称、值)使用一个或多个指定选项名称,值对参数。

例子

全部折叠

这个例子展示了如何使用matchScansLine函数来估计之间的相对构成激光雷达扫描给出一个初始估计。确定行特性可视化展示scan-matching算法关联特性之间的扫描。

负载的一对激光雷达扫描。的.mat文件还包含一个初始猜的相对姿态的区别,initGuess,这可能是基于测程法或其他传感器数据。

负载tb3_scanPair.mat情节(s1)情节(s2)

图包含一个坐标轴对象。坐标轴标题激光雷达扫描对象,包含X, Y ylabel包含2线类型的对象。一个或多个行显示的值只使用标记

设置参数为线特征提取和协会。激光雷达数据的噪声决定了平滑阈值,它定义了发生换行时为一个特定的功能。增加这个值更嘈杂的激光雷达数据。兼容性规模决定当特性被认为是匹配的。增加这个值为宽松的线特征参数的限制。

smoothnessThresh = 0.2;compatibilityScale = 0.002;

调用matchScansLine用给定的初始猜测和其他参数指定为名称-值对。为每个扫描函数计算线特性,尝试匹配,使用一个总体估计造成的差异。

[relPose stats, debugInfo] = matchScansLine (s1, s2 initGuess,“SmoothnessThreshold”smoothnessThresh,“CompatibilityScale”,compatibilityScale);

匹配的扫描后,debugInfo输出给你检测到线特征参数的信息,(ρα)和假说的特性匹配扫描。

debugInfo.MatchHypothesis州第一、第二和第六行功能s1与第五,第二,和第四特征s2

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

提供的helper函数块这两个扫描和特征提取与标签。s2转换是在同一个框架基于相对姿态的初始猜测。

exampleHelperShowLineFeaturesInScan (s1, s2, debugInfo initGuess);

使用估计的相对姿态matchScansLine转换s2。然后,情节都扫描表明,相对构成的区别是准确和扫描叠加显示相同的环境。

s2t = transformScan (s2, relPose);clf情节(s1)情节(s2t)

图包含一个坐标轴对象。坐标轴标题激光雷达扫描对象,包含X, Y ylabel包含2线类型的对象。一个或多个行显示的值只使用标记

输入参数

全部折叠

目前激光雷达扫描阅读,指定为一个lidarScan对象。

你的激光雷达扫描可以包含值,但该算法忽略了它们。

参考激光雷达扫描阅读,指定为一个lidarScan对象。

你的激光雷达扫描可以包含值,但该算法忽略了它们。

的初始猜测当前相对于参考激光扫描帧,指定一个(x yθ)向量。(x, y)米,翻译θ旋转的弧度。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“LineMergeThreshold”(0.10 - 0.2)

阈值检测换行符点扫描,指定为一个标量。平滑度是通过调用定义的diff (diff (scanData))并假设等距的扫描角度。扫描点对应的平滑值高于该阈值被认为是破发点。激光雷达扫描数据与更高的噪声水平,增加这个阈值。

最小数量的扫描点的特性,每一行指定为一个正整数大于3。

一条线功能不能从一组扫描点确定如果点的数量低于这个阈值。激光雷达扫描数据时吵闹,设置这个属性太小可能会导致劣质线特性识别和斜匹配结果。另一方面,一些关键的线特性可能错过了如果这个数字太大。

阈值参数合并线特性,指定为一个双元素向量(ρα)。一条线是由两个参数定义:

  • ρ——距离原点到直线矢量垂直于线,在米中指定。

  • α——夹角x设在和ρ中指定的向量,弧度。

如果两个线特性的区别这些参数低于给定的阈值,线功能合并。

下界突出价值探测到一个角落,指定为一个积极的标量。

突出措施多少一个局部极值站在激光雷达数据。只值高于这个下界被认为是一个角落。角落里帮助识别功能,但不是功能本身的一部分。嘈杂的激光雷达扫描数据,增加这个下界。

规模调整兼容性阈值用于功能协会指定为一个积极的标量。一个较低的规模意味着更严格的兼容性阈值关联特性。如果没有发现在激光雷达数据特征明显的线特征,增加这个值。无效的功能匹配,减少该值。

输出参数

全部折叠

造成当前相对于参考扫描,扫描返回(x yθ),在那里(x, y)米,翻译θ旋转的弧度。

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

  • 协方差——3 x3的代表相对姿态估计的协方差矩阵。的matScansLine不提供之间的协方差函数(x, y)θ组件的相对姿态。因此,矩阵如下模式:[Cxx Cxy 0;Cyx Cyy 0;0 0 Ctheta]

  • ExitFlag——标量值指示的退出条件解算器:

    • 0——没有错误。

    • 1——不足数量的线特征(< 2)在一个或两个扫描。考虑使用不同的扫描更多的线功能。

    • 2——不足数量的线特征匹配识别。这可能表明initialRelPose是无效的或扫描相距太远。

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

  • ReferenceFeatures——线特征提取作为参考扫描n2矩阵。功能是表示为每一行(ρα)参数方程,ρ=x∙cos (α)+y∙sin (α)。

  • ReferenceScanMask——面具指示点参考扫描作为一个用于每一行功能n——- - - - - -p矩阵。每一行对应一行ReferenceFeatures为每个点,包含0和1refScan

  • CurrentFeatures——线特征提取作为当前的扫描n2矩阵。功能是表示为每一行(ρα)参数方程,ρ=x∙cos (α)+y∙sin (α)。

  • CurrentScanMask——面具指示点在当前扫描作为一个用于每一行功能n——- - - - - -p矩阵。每一行对应一行ReferenceFeatures为每个点,包含0和1refScan

  • MatchHypothesis——最好的线特征匹配的假设作为一个n元素的向量,n线特征的数量吗CurrentFeatures。每个元素代表了相应的功能ReferenceFeatures并给出了匹配的索引功能ReferenceFeatures索引匹配吗

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

引用

[1]Neira, J。,和J.d. Tardos. “Data Association in Stochastic Mapping Using the Joint Compatibility Test.”IEEE机器人和自动化17日,没有。6 (2001):890 - 97。https://doi.org/10.1109/70.976019。

[2],沈,埃米利奥Frazzoli,达妮埃拉俄文,马塞洛·h·盎。“快速接头兼容分支和开往特征云匹配。”2016年IEEE / RSJ智能机器人和系统国际会议(——),2016年。https://doi.org/10.1109/iros.2016.7759281。

版本历史

介绍了R2020b

另请参阅

|