文档帮助中心文档
估计两个激光扫描之间的姿势
构成= matchScans (currScan refScan)
构成= matchScans (currRanges currAngles、refRanges refAngles)
(姿势,统计)= matchScans (___)
[___) = matchScans (___、名称、值)
例子
姿势=匹配扫描(currScan,refScan)查找参照之间的相对姿势lidarScan和电流lidarScan对象使用正态分布变换(NDT)。
姿势=匹配扫描(currScan,refScan)
姿势
currScan
refScan
lidarScan
姿势=匹配扫描(咖喱,currAngles,重构,refAngles)找到指定为范围和角度的两个激光扫描之间的相对姿态。
姿势=匹配扫描(咖喱,currAngles,重构,refAngles)
咖喱
currAngles
重构
refAngles
[姿势,统计数据) = matchScans (___)使用前面的输入参数返回有关扫描匹配结果的其他统计信息。
[姿势,统计数据) = matchScans (___)
统计数据
[___) = matchScans (___、名称、值)指定由一个或多个指定的附加选项名称,值对参数。
名称,值
全部折叠
这个示例使用:
使用创建参考激光雷达扫描lidarScan.指定范围和角度作为向量。
refRanges=5*one(1300);refRanges=linspace(-pi/2,pi/2300);refScan=lidarScan(refRanges,refAngles);
使用transformScan(机器人系统工具箱)功能,在指定时间生成第二次激光雷达扫描x、 y偏置的(0.5,0.2).
transformScan
x、 y
(0.5,0.2)
currScan=transformScan(参考扫描[0.50.20]);
匹配参考扫描和第二次扫描,估计它们之间的位姿差异。
姿势=匹配扫描(currScan、refScan);
使用transformScan函数通过使用相对位姿差将第二次扫描转换为第一次扫描的帧来对齐扫描。绘制原始扫描和对齐扫描。
currScan2=变换扫描(currScan,姿势);子批次(2,1,1);持有在绘图(当前扫描)绘图(参考扫描)标题(“原始扫描”)举行从次要情节(2,1,2);持有在情节(currScan2)情节(refScan)标题(“对齐扫描”) xlim([0 5])保持从
当前激光雷达扫描读数,指定为lidarScan对象。
你的激光雷达扫描可以包含正和楠值,但算法会忽略它们。
正
楠
参考激光雷达扫描读数,指定为lidarScan对象。
当前激光扫描范围,以矢量形式指定。范围以从激光传感器测量到物体的距离表示。
你的激光扫描范围可以包含正和楠值,但算法会忽略它们。
当前激光扫描角度,指定为以弧度为单位的矢量。角度作为相应量程测量的方向给出。
参考激光扫描范围,指定为以米为单位的矢量。范围表示为从激光传感器测量到的物体的距离。
参考激光扫描角度,以弧度为单位指定为矢量。角度表示为相应距离测量的方向。
指定可选的逗号分隔的字符对名称,值参数。名称是参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
名称
价值
Name1, Value1,…,的家
“InitialPose”,[1 1π/ 2]
SolverAlgorithm
“信赖域”
“fminunc”
优化算法,指定为“信赖域”或“fminunc”.使用“fminunc”需要一个优化工具箱™ 许可证
InitialPose
[xyθ]
相对于参考激光扫描的当前姿势的初始猜测,指定为逗号分隔对,包括“InitialPose”和[xyθ]向量。(x, y)平移单位是米和吗西塔是以弧度为单位的旋转。
“InitialPose”
(x, y)
西塔
CellSize
单元格边的长度(以米为单位),指定为逗号分隔的一对,由“手机大小”和一个数值标量。匹配扫描使用单元大小离散NDT算法的空间。
“手机大小”
匹配扫描
调整单元格大小对于正确使用NDT算法非常重要。最佳单元格大小取决于输入扫描和机器人的环境。更大的细胞尺寸可能导致较不准确的匹配,采样较差的区域。更小的单元需要更多的内存和更少的后续扫描差异。传感器噪声也会对小单元的算法产生影响。选择适当的单元格大小取决于环境和输入数据的规模。
最大迭代次数
最大迭代次数,指定为逗号分隔对,由“最大迭代次数”和一个标量整数。更多的迭代会导致更精确的姿态估计,但代价是更长的执行时间。
“最大迭代次数”
分数容忍度
1e-6
NDT分数变化的下限,指定为逗号分隔对,包括“ScoreTolerance”和数字标量。NDT分数存储在分数输出场统计数据结构。在迭代之间,如果分数变化小于此容差,则算法收敛到一个解决方案。更小的容差会导致更精确的姿势估计,但需要更长的执行时间。
“ScoreTolerance”
分数
当前扫描相对于参考扫描的姿势,返回为[xyθ],在那里(x, y)平移单位是米和吗西塔是以弧度为单位的旋转。
扫描匹配统计信息,返回如下字段的结构:
分数-表示扫描匹配时NDT分数的数值标量。该分数是对转换后的当前扫描与参考扫描匹配的可能性的估计。分数总是非负。分数越大表示匹配越好。
黑森-表示给定条件下NDT成本函数的Hessian值的3×3矩阵姿势解决方案。Hessian被用作与姿态估计相关的不确定性的指标。
黑森
[1] 正态分布变换:激光扫描匹配的新方法智能机器人与系统会议录.2003.
[2] Magnusson,马丁。三维正态分布变换——配准、表面分析和环路检测的有效表示。博士学位论文。Örebro大学科技学院,2009。
默认情况下支持代码生成万博1manbetxSolverAlgorithm,“信赖域”.你不能使用“fminunc”代码生成中的算法。
火柴网
matchScansLine
职业地图
蒙特卡洛定位
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站以获取可用的翻译内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。
与当地办事处联系
得到审判现在