主要内容

scanContextLoopDetector

使用扫描上下文描述符检测循环闭包

描述

scanContextLoopDetector使用全局扫描上下文描述符检测点云数据中的闭环。一个扫描上下文描述符将点云视图编码为二维描述符。scanContextLoopDetector类中的视图中的描述符与对应的视图标识符相关联pcviewset用于地图构建。

创建

描述

例子

loopDetector= scanContextLoopDetector ()创建默认值scanContextLoopDetector对象。使用addDescriptor对象函数向循环检测器添加描述符。使用detectLoop对象函数来检测循环闭包。

属性

全部展开

此属性是只读的。

视图标识符,指定为P-element唯一正整数向量,其中P添加到检测器的描述符数。

此属性是只读的。

类型指定的扫描上下文描述符——- - - - - -N——- - - - - -P数组中。径向箱的数量和N描述符中的方位箱数。P检测器中描述符的数量。

对象的功能

addDescriptor 向循环关闭检测器添加描述符
deleteDescriptor 从循环关闭检测器中删除描述符
detectLoop 检测循环闭包

例子

全部折叠

创建一个循环闭合检测器。

loopDetector = scanContextLoopDetector;

创建一个Velodyne PCAP文件读取器。

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

读取点云并从每个点云扫描中提取扫描上下文描述符。向检测器添加描述符。

ptCloud = readFrame(velereader,viewId);描述符= scanContextDescriptor(ptCloud);addDescriptor (loopDetector viewId,描述符);结束

检查下一个点云是否可以在不排除任何最近添加的描述符的情况下被归类为环路闭合检测。

viewId = viewId + 1;ptCloud = readFrame(velereader,viewId);描述符= scanContextDescriptor(ptCloud);[loopViewId,dists] = detectLoop(loopDetector,descriptor,“NumExcludedDescriptors”, 0)
loopViewId =uint3210
dist =0.0858

扩展功能

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

版本历史

R2021b中引入