对应任佬代码tag11.0
闭环检测步骤:(1)检测历史帧(2)进行匹配
闭环检测调用:
MaybeInsertLoopPose()函数:
检测到闭环帧,将其加入到图优化模型中,进行优化。
InsertLoopPose()函数:
闭环检测实现:
loop_closing_node先看一下闭环检测节点loop_closing_node:
启动接受,发布闭环部分的数据,以及闭环部分配置参数初始化等功能。
std::shared_ptr<LoopClosingFlow> loop_closing_flow_ptr = std::make_shared<LoopClosingFlow>(nh);
调用闭环检测程序
loop_closing_flow_ptr->Run();
闭环检测实现流程:
Update()函数:
开始闭环检测主流程了,先是检测历史帧,然后对最近的历史帧进行匹配,达到要求则闭环成功
DetectNearestKeyFrame()函数:
CloudRegistration()函数:
JointMap()函数:
pose_to_gnss:gnss读取时以已经和雷达转化到一个坐标系下,所以这里指雷达与gnss读取位姿之间的差异。。
JointScan()函数:
Registration()函数:
关于配置闭环部分的代码很简单,这里就不贴出了,贴一出启动他们的接口函数吧
// loop closing
loop_closing_ptr_ = std::make_shared<LoopClosing>();