如何优化lidarSLAM对象poseGraph后删除错误的循环闭包?

5视图(30天)
你好,
我使用了机器人。LidarSLAM离线大满贯的例子来构建一个映射的例子 LidarSLAM实现
问题是我发现一些错误的循环闭包,打乱我的大满贯。我找到了一种方法来删除不正确的循环闭包如下所示(假设EdgeID: 196是不正确的约束)的抨击对象 slamAlg :
removeLoopClosures (slamAlg [196])
即使删除循环闭合,poseGraph不变(保留了不正确的形状)。我想知道如果有一种方法可以再优化poseGraph或updatePosegraph之后?
显然有一种方法是使用Matlab大满贯毛builder应用程序可以正确/忽略循环闭包和地图再优化。
谢谢你!
Sooraj

接受的答案

刘呀
刘呀 2019年6月21日
调用 removeLoopClosures 不会自动重新运行构成图优化,只有消除了LC从构成图形对象。你有打电话给 optimizePoseGraph 一次在构成图。
1评论
soorajanilkumar
soorajanilkumar 2019年6月22日
嗨,刘,
谢谢你的回应。尝试不同的事以后我就能实现它如下:
%检查残留误差和忽视循环关闭如果它太高了
如果optimizationInfo。ResidualError e-02 & optimizationInfo.IsAccepted > 1
removeLoopClosures (slamAlg loopClosureInfo.EdgeIDs)
temp = optimizePoseGraph (slamAlg.PoseGraph);
slamAlg.PoseGraph.updatePoseGraph(临时);
结束
但是在这里我还是要叫外面的optimizePoseGraph大满贯的对象。也updatePoseGraph方法不可用Matlab R2018b版本。
是否有替代的方式来达到相同的没有updatePoseGraph函数?或者还有其他机器人的内部函数。LidarSLAM类,我可以使用启动优化?

登录置评。

更多的答案(0)

s manbetx 845


释放

R2019a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!