主要内容

scanContextDistance

扫描上下文描述符之间的距离

描述

例子

经销= scanContextDistance (descriptor1descriptor2计算扫描上下文描述符之间的标准化距离。使用计算的距离确定循环闭合候选。

扫描上下文描述符是点云的二维全局特征描述符,可用于检测循环闭包。要从点云中提取扫描上下文描述符,请使用scanContextDescriptor函数。

例子

全部折叠

创建一个Velodyne®数据包捕获(PCAP)文件读取器。

veloReader = velodyneFileReader (“lidarData_ConstructionRoad.pcap”“HDL32E”);

将第1次、第2次和第100次扫描读取到工作区。

ptCloud1 = readFrame (veloReader, 1);ptCloud2 = readFrame (veloReader 2);ptCloud100 = readFrame (veloReader, 100);

从每个点云中提取扫描上下文描述符。

descriptor1 = scanContextDescriptor (ptCloud1);descriptor2 = scanContextDescriptor (ptCloud2);descriptor100 = scanContextDescriptor (ptCloud100);

计算第1个和第2个扫描上下文描述符之间以及第1个和第100个扫描上下文描述符之间的描述符距离。

dist1to2 = scanContextDistance (descriptor1 descriptor2);dist1to100 = scanContextDistance (descriptor1 descriptor100);

显示扫描上下文描述符距离。

disp (描述符从帧1到帧2的距离+ num2str (dist1to2))
从帧1到帧2的描述符距离:0.087646
disp (描述符从帧1到帧100的距离+ num2str (dist1to100))
描述符从帧1到100的距离:0.32427

输入参数

全部折叠

扫描点云上下文描述符,指定为——- - - - - -N矩阵。为了确保精确的距离测量,在提取描述符时使用相同的径向范围descriptor2

数据类型:|

扫描点云上下文描述符,指定为——- - - - - -N矩阵。为了确保精确的距离测量,在提取描述符时使用相同的径向范围descriptor1

数据类型:|

输出参数

全部折叠

扫描上下文描述符之间的距离,返回为范围[0,1]中的标量。一个小的值表示扫描上下文可能属于同一个位置,并且是循环闭包候选者。

数据类型:|

算法

  • 该函数使用修改后的余弦距离计算扫描上下文描述符之间的距离,并将其归一化为范围[01).

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

另请参阅

对象

功能

介绍了R2020b