主要内容

optimizePoses

使用相对姿态约束优化绝对姿态

描述

例子

vSetOptim= optimizePoses (vSet返回一个绝对位姿经过优化的点云视图集。vSetOptim而且vSetpcviewset对象。

optimizePoses函数在绝对位姿上执行位姿图优化的观点方法建立的相对位姿约束在视图集中连接财产。你可以使用optimizePoses在检测到环路闭合后,纠正里程计中的漂移。

vSetOptim= optimizePoses (vSet名称,值使用一个或多个名称-值对参数指定选项。例如,“宽容”0.2将优化代价函数的公差设置为0.2

例子

全部折叠

创建一个视图集。

vSet = pcviewset;

添加四个节点并指定绝对位姿。

absPoses = repelem(rigid3d, 4,1);absPoses(1)。翻译= [0 0 0];absPoses(2)。翻译= [1 0 0];absPoses(3)。翻译= [2 0 0];absPoses(4)。翻译= [0.1 0 0];vSet = addView(vSet, 1, absPoses(1)); vSet = addView(vSet, 2, absPoses(2)); vSet = addView(vSet, 3, absPoses(3)); vSet = addView(vSet, 4, absPoses(4));

定义4条边,3个测程和1个环路闭合。

relposed = repelem(rigid3d, 4,1);relPoses(1)。翻译= [1 0 0];relPoses(2)。翻译= [1 0 0];relPoses(3)。翻译= [-1.9 0 0];relPoses(4)。翻译= [0.2 0 0];vSet = addConnection(vSet, 1,2, relposed (1));%测程法vSet = addConnection(vSet, 2,3, relposed (2));%测程法vSet = addConnection(vSet, 3,4, relposed (3));%测程法vSet = addConnection(vSet, 4,1, relposed (4));%回路闭合

优化视图集。

vSetOptim = optimizeposed (vSet);

显示原始和优化的位置。

disp (“原始的绝对翻译:”
原始绝对翻译:
disp (vertcat (vSet.Views.AbsolutePose.Translation))
000 1.0000 00 2.0000 0 0.1000 00
disp (“优化的绝对翻译:”
优化的绝对翻译:
disp (vertcat (vSetOptim.Views.AbsolutePose.Translation))
00 0 0.9250 00 1.8500 00 -0.1250 00

输入参数

全部折叠

点云视图集,指定为pcviewset对象。

名称-值参数

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

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:MaxIterations”,300将最大迭代数设置为300

函数终止优化之前的最大迭代次数,指定为逗号分隔的对,由“MaxIterations”一个正整数。增大此值可获得更高的结果准确性。减小此值可获得更快的结果。

优化代价函数在连续两次迭代之间的公差,指定为逗号分隔的对,由'宽容'和一个正标量。如果成本函数的变化小于'宽容的值,则函数终止优化。

显示进度信息,由逗号分隔的对组成详细的数字或逻辑0)或1真正的).要显示进度信息,请设置'详细的真正的

输出参数

全部折叠

包含优化的绝对姿态的点云视图集,指定为pcviewset对象。

提示

  • 要更新具有优化姿态的视图集,请使用updateView对象的功能。

  • optimizePoses对象函数固定第一个视图。

算法

optimizePoses函数使用Levenberg-Marquardt优化算法与稀疏Cholesky分解从一般(超)图优化(G2o)库,[1]。

参考文献

[1] Kümmerle, Rainer, Giorgio Grisetti, Hauke Strasdat, Kurt Konolige和Wolfram Burgard。《G2o:图优化的一般框架》在2011年IEEE机器人与自动化国际会议,3607-13,2011。https://doi.org/10.1109/ICRA.2011.5979949。

扩展功能

版本历史

R2020a中引入

另请参阅

功能

对象