从零开始做自动驾驶(8)——闭环修正

对应任佬代码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>();

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值